LCOV - code coverage report
Current view: top level - test/mjsunit/asm/embenchen - lua_binarytrees.js (source / functions) Hit Total Coverage
Test: coverage.info Lines: 25688 42711 60.1 %
Date: 2017-02-16 Functions: 384 1061 36.2 %

          Line data    Source code
       1           1 : var EXPECTED_OUTPUT =
       2           1 :   'stretch tree of depth 10\t check: -1\n' +
       3           1 :   '1448\t trees of depth 4\t check: -1448\n' +
       4           1 :   '362\t trees of depth 6\t check: -362\n' +
       5           1 :   '90\t trees of depth 8\t check: -90\n' +
       6           1 :   'long lived tree of depth 9\t check: -1\n';
       7           1 : var Module = {
       8           1 :   arguments: [1],
       9           5 :   print: function(x) {Module.printBuffer += x + '\n';},
      10           1 :   preRun: [function() {Module.printBuffer = ''}],
      11           1 :   postRun: [function() {
      12           1 :     assertEquals(EXPECTED_OUTPUT, Module.printBuffer);
      13           1 :   }],
      14           1 : };
      15           1 : 
      16           1 : var Module;
      17           1 : if (typeof Module === 'undefined') Module = eval('(function() { try { return Module || {} } catch(e) { return {} } })()');
      18           1 : if (!Module.expectedDataFileDownloads) {
      19           1 :   Module.expectedDataFileDownloads = 0;
      20           1 :   Module.finishedDataFileDownloads = 0;
      21           1 : }
      22           1 : Module.expectedDataFileDownloads++;
      23           1 : (function() {
      24           1 : 
      25           1 :   function runWithFS() {
      26           1 : 
      27           1 : function assert(check, msg) {
      28           0 :   if (!check) throw msg + new Error().stack;
      29           1 : }
      30           1 : Module['FS_createDataFile']('/', 'binarytrees.lua', [45, 45, 32, 84, 104, 101, 32, 67, 111, 109, 112, 117, 116, 101, 114, 32, 76, 97, 110, 103, 117, 97, 103, 101, 32, 66, 101, 110, 99, 104, 109, 97, 114, 107, 115, 32, 71, 97, 109, 101, 10, 45, 45, 32, 104, 116, 116, 112, 58, 47, 47, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 103, 97, 109, 101, 46, 97, 108, 105, 111, 116, 104, 46, 100, 101, 98, 105, 97, 110, 46, 111, 114, 103, 47, 10, 45, 45, 32, 99, 111, 110, 116, 114, 105, 98, 117, 116, 101, 100, 32, 98, 121, 32, 77, 105, 107, 101, 32, 80, 97, 108, 108, 10, 10, 108, 111, 99, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 116, 101, 109, 44, 32, 100, 101, 112, 116, 104, 41, 10, 32, 32, 105, 102, 32, 100, 101, 112, 116, 104, 32, 62, 32, 48, 32, 116, 104, 101, 110, 10, 32, 32, 32, 32, 108, 111, 99, 97, 108, 32, 105, 32, 61, 32, 105, 116, 101, 109, 32, 43, 32, 105, 116, 101, 109, 10, 32, 32, 32, 32, 100, 101, 112, 116, 104, 32, 61, 32, 100, 101, 112, 116, 104, 32, 45, 32, 49, 10, 32, 32, 32, 32, 108, 111, 99, 97, 108, 32, 108, 101, 102, 116, 44, 32, 114, 105, 103, 104, 116, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 45, 49, 44, 32, 100, 101, 112, 116, 104, 41, 44, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 44, 32, 100, 101, 112, 116, 104, 41, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 32, 105, 116, 101, 109, 44, 32, 108, 101, 102, 116, 44, 32, 114, 105, 103, 104, 116, 32, 125, 10, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 32, 105, 116, 101, 109, 32, 125, 10, 32, 32, 101, 110, 100, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 41, 10, 32, 32, 105, 102, 32, 116, 114, 101, 101, 91, 50, 93, 32, 116, 104, 101, 110, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 101, 101, 91, 49, 93, 32, 43, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 91, 50, 93, 41, 32, 45, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 91, 51, 93, 41, 10, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 101, 101, 91, 49, 93, 10, 32, 32, 101, 110, 100, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 78, 32, 61, 32, 116, 111, 110, 117, 109, 98, 101, 114, 40, 97, 114, 103, 32, 97, 110, 100, 32, 97, 114, 103, 91, 49, 93, 41, 32, 111, 114, 32, 52, 10, 10, 105, 102, 32, 78, 32, 61, 61, 32, 48, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 48, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 49, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 57, 46, 53, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 50, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 49, 46, 57, 57, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 51, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 50, 46, 56, 53, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 52, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 52, 46, 55, 50, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 53, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 53, 46, 56, 50, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 109, 105, 110, 100, 101, 112, 116, 104, 32, 61, 32, 52, 10, 108, 111, 99, 97, 108, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 61, 32, 109, 105, 110, 100, 101, 112, 116, 104, 32, 43, 32, 50, 10, 105, 102, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 60, 32, 78, 32, 116, 104, 101, 110, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 61, 32, 78, 32, 101, 110, 100, 10, 10, 100, 111, 10, 32, 32, 108, 111, 99, 97, 108, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 32, 61, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 43, 32, 49, 10, 32, 32, 108, 111, 99, 97, 108, 32, 115, 116, 114, 101, 116, 99, 104, 116, 114, 101, 101, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 48, 44, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 41, 10, 32, 32, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 115, 116, 114, 101, 116, 99, 104, 32, 116, 114, 101, 101, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 32, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 44, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 115, 116, 114, 101, 116, 99, 104, 116, 114, 101, 101, 41, 41, 41, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 108, 111, 110, 103, 108, 105, 118, 101, 100, 116, 114, 101, 101, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 48, 44, 32, 109, 97, 120, 100, 101, 112, 116, 104, 41, 10, 10, 102, 111, 114, 32, 100, 101, 112, 116, 104, 61, 109, 105, 110, 100, 101, 112, 116, 104, 44, 109, 97, 120, 100, 101, 112, 116, 104, 44, 50, 32, 100, 111, 10, 32, 32, 108, 111, 99, 97, 108, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 50, 32, 94, 32, 40, 109, 97, 120, 100, 101, 112, 116, 104, 32, 45, 32, 100, 101, 112, 116, 104, 32, 43, 32, 109, 105, 110, 100, 101, 112, 116, 104, 41, 10, 32, 32, 108, 111, 99, 97, 108, 32, 99, 104, 101, 99, 107, 32, 61, 32, 48, 10, 32, 32, 102, 111, 114, 32, 105, 61, 49, 44, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 100, 111, 10, 32, 32, 32, 32, 99, 104, 101, 99, 107, 32, 61, 32, 99, 104, 101, 99, 107, 32, 43, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 49, 44, 32, 100, 101, 112, 116, 104, 41, 41, 32, 43, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 45, 49, 44, 32, 100, 101, 112, 116, 104, 41, 41, 10, 32, 32, 101, 110, 100, 10, 32, 32, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 37, 100, 92, 116, 32, 116, 114, 101, 101, 115, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 32, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 50, 44, 32, 100, 101, 112, 116, 104, 44, 32, 99, 104, 101, 99, 107, 41, 41, 10, 101, 110, 100, 10, 10, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 108, 111, 110, 103, 32, 108, 105, 118, 101, 100, 32, 116, 114, 101, 101, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 109, 97, 120, 100, 101, 112, 116, 104, 44, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 108, 111, 110, 103, 108, 105, 118, 101, 100, 116, 114, 101, 101, 41, 41, 41, 10], true, true);
      31           1 : 
      32           1 :   }
      33           1 :   if (Module['calledRun']) {
      34           1 :     runWithFS();
      35           1 :   } else {
      36           1 :     if (!Module['preRun']) Module['preRun'] = [];
      37           1 :     Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
      38           1 :   }
      39           1 : 
      40           1 : })();
      41           1 : 
      42           1 : // The Module object: Our interface to the outside world. We import
      43           1 : // and export values on it, and do the work to get that through
      44           1 : // closure compiler if necessary. There are various ways Module can be used:
      45           1 : // 1. Not defined. We create it here
      46           1 : // 2. A function parameter, function(Module) { ..generated code.. }
      47           1 : // 3. pre-run appended it, var Module = {}; ..generated code..
      48           1 : // 4. External script tag defines var Module.
      49           1 : // We need to do an eval in order to handle the closure compiler
      50           1 : // case, where this code here is minified but Module was defined
      51           1 : // elsewhere (e.g. case 4 above). We also need to check if Module
      52           1 : // already exists (e.g. case 3 above).
      53           1 : // Note that if you want to run closure, and also to use Module
      54           1 : // after the generated code, you will need to define   var Module = {};
      55           1 : // before the code. Then that object will be used in the code, and you
      56           1 : // can continue to use Module afterwards as well.
      57           1 : var Module;
      58           1 : if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {};
      59           1 : 
      60           1 : // Sometimes an existing Module object exists with properties
      61           1 : // meant to overwrite the default module functionality. Here
      62           1 : // we collect those properties and reapply _after_ we configure
      63           1 : // the current environment's defaults to avoid having to be so
      64           1 : // defensive during initialization.
      65           1 : var moduleOverrides = {};
      66           1 : for (var key in Module) {
      67           1 :   if (Module.hasOwnProperty(key)) {
      68           1 :     moduleOverrides[key] = Module[key];
      69           1 :   }
      70           1 : }
      71           1 : 
      72           1 : // The environment setup code below is customized to use Module.
      73           1 : // *** Environment setup code ***
      74           1 : var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function';
      75           1 : var ENVIRONMENT_IS_WEB = typeof window === 'object';
      76           1 : var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
      77           1 : var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
      78           1 : 
      79           1 : if (ENVIRONMENT_IS_NODE) {
      80           1 :   // Expose functionality in the same simple way that the shells work
      81           1 :   // Note that we pollute the global namespace here, otherwise we break in node
      82           1 :   if (!Module['print']) Module['print'] = function print(x) {
      83           0 :     process['stdout'].write(x + '\n');
      84           1 :   };
      85           1 :   if (!Module['printErr']) Module['printErr'] = function printErr(x) {
      86           0 :     process['stderr'].write(x + '\n');
      87           1 :   };
      88           1 : 
      89           1 :   var nodeFS = require('fs');
      90           1 :   var nodePath = require('path');
      91           1 : 
      92           1 :   Module['read'] = function read(filename, binary) {
      93           0 :     filename = nodePath['normalize'](filename);
      94           0 :     var ret = nodeFS['readFileSync'](filename);
      95           0 :     // The path is absolute if the normalized version is the same as the resolved.
      96           0 :     if (!ret && filename != nodePath['resolve'](filename)) {
      97           0 :       filename = path.join(__dirname, '..', 'src', filename);
      98           0 :       ret = nodeFS['readFileSync'](filename);
      99           0 :     }
     100           0 :     if (ret && !binary) ret = ret.toString();
     101           0 :     return ret;
     102           1 :   };
     103           1 : 
     104           1 :   Module['readBinary'] = function readBinary(filename) { return Module['read'](filename, true) };
     105           1 : 
     106           1 :   Module['load'] = function load(f) {
     107           0 :     globalEval(read(f));
     108           1 :   };
     109           1 : 
     110           1 :   Module['arguments'] = process['argv'].slice(2);
     111           1 : 
     112           1 :   module['exports'] = Module;
     113           1 : }
     114           1 : else if (ENVIRONMENT_IS_SHELL) {
     115           1 :   if (!Module['print']) Module['print'] = print;
     116           1 :   if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
     117           1 : 
     118           1 :   if (typeof read != 'undefined') {
     119           1 :     Module['read'] = read;
     120           1 :   } else {
     121           1 :     Module['read'] = function read() { throw 'no read() available (jsc?)' };
     122           1 :   }
     123           1 : 
     124           1 :   Module['readBinary'] = function readBinary(f) {
     125           0 :     return read(f, 'binary');
     126           1 :   };
     127           1 : 
     128           1 :   if (typeof scriptArgs != 'undefined') {
     129           1 :     Module['arguments'] = scriptArgs;
     130           1 :   } else if (typeof arguments != 'undefined') {
     131           1 :     Module['arguments'] = arguments;
     132           1 :   }
     133           1 : 
     134           1 :   this['Module'] = Module;
     135           1 : 
     136           1 :   eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined"); // wipe out the SpiderMonkey shell 'gc' function, which can confuse closure (uses it as a minified name, and it is then initted to a non-falsey value unexpectedly)
     137           1 : }
     138           1 : else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
     139           1 :   Module['read'] = function read(url) {
     140           0 :     var xhr = new XMLHttpRequest();
     141           0 :     xhr.open('GET', url, false);
     142           0 :     xhr.send(null);
     143           0 :     return xhr.responseText;
     144           1 :   };
     145           1 : 
     146           1 :   if (typeof arguments != 'undefined') {
     147           1 :     Module['arguments'] = arguments;
     148           1 :   }
     149           1 : 
     150           1 :   if (typeof console !== 'undefined') {
     151           1 :     if (!Module['print']) Module['print'] = function print(x) {
     152           0 :       console.log(x);
     153           1 :     };
     154           1 :     if (!Module['printErr']) Module['printErr'] = function printErr(x) {
     155           0 :       console.log(x);
     156           1 :     };
     157           1 :   } else {
     158           1 :     // Probably a worker, and without console.log. We can do very little here...
     159           1 :     var TRY_USE_DUMP = false;
     160           1 :     if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) {
     161           0 :       dump(x);
     162           1 :     }) : (function(x) {
     163           0 :       // self.postMessage(x); // enable this if you want stdout to be sent as messages
     164           1 :     }));
     165           1 :   }
     166           1 : 
     167           1 :   if (ENVIRONMENT_IS_WEB) {
     168           1 :     window['Module'] = Module;
     169           1 :   } else {
     170           1 :     Module['load'] = importScripts;
     171           1 :   }
     172           1 : }
     173           1 : else {
     174           1 :   // Unreachable because SHELL is dependant on the others
     175           1 :   throw 'Unknown runtime environment. Where are we?';
     176           1 : }
     177           1 : 
     178           1 : function globalEval(x) {
     179           0 :   eval.call(null, x);
     180           1 : }
     181           1 : if (!Module['load'] == 'undefined' && Module['read']) {
     182           1 :   Module['load'] = function load(f) {
     183           0 :     globalEval(Module['read'](f));
     184           1 :   };
     185           1 : }
     186           1 : if (!Module['print']) {
     187           1 :   Module['print'] = function(){};
     188           1 : }
     189           1 : if (!Module['printErr']) {
     190           1 :   Module['printErr'] = Module['print'];
     191           1 : }
     192           1 : if (!Module['arguments']) {
     193           1 :   Module['arguments'] = [];
     194           1 : }
     195           1 : // *** Environment setup code ***
     196           1 : 
     197           1 : // Closure helpers
     198           1 : Module.print = Module['print'];
     199           1 : Module.printErr = Module['printErr'];
     200           1 : 
     201           1 : // Callbacks
     202           1 : Module['preRun'] = [];
     203           1 : Module['postRun'] = [];
     204           1 : 
     205           1 : // Merge back in the overrides
     206           1 : for (var key in moduleOverrides) {
     207           1 :   if (moduleOverrides.hasOwnProperty(key)) {
     208           1 :     Module[key] = moduleOverrides[key];
     209           1 :   }
     210           1 : }
     211           1 : 
     212           1 : 
     213           1 : 
     214           1 : // === Auto-generated preamble library stuff ===
     215           1 : 
     216           1 : //========================================
     217           1 : // Runtime code shared with compiler
     218           1 : //========================================
     219           1 : 
     220           1 : var Runtime = {
     221           1 :   stackSave: function () {
     222           0 :     return STACKTOP;
     223           1 :   },
     224           1 :   stackRestore: function (stackTop) {
     225           0 :     STACKTOP = stackTop;
     226           1 :   },
     227           1 :   forceAlign: function (target, quantum) {
     228           0 :     quantum = quantum || 4;
     229           0 :     if (quantum == 1) return target;
     230           0 :     if (isNumber(target) && isNumber(quantum)) {
     231           0 :       return Math.ceil(target/quantum)*quantum;
     232           0 :     } else if (isNumber(quantum) && isPowerOfTwo(quantum)) {
     233           0 :       return '(((' +target + ')+' + (quantum-1) + ')&' + -quantum + ')';
     234           0 :     }
     235           0 :     return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum;
     236           1 :   },
     237           1 :   isNumberType: function (type) {
     238           0 :     return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES;
     239           1 :   },
     240           1 :   isPointerType: function isPointerType(type) {
     241           0 :   return type[type.length-1] == '*';
     242           1 : },
     243           1 :   isStructType: function isStructType(type) {
     244           0 :   if (isPointerType(type)) return false;
     245           0 :   if (isArrayType(type)) return true;
     246           0 :   if (/<?\{ ?[^}]* ?\}>?/.test(type)) return true; // { i32, i8 } etc. - anonymous struct types
     247           0 :   // See comment in isStructPointerType()
     248           0 :   return type[0] == '%';
     249           1 : },
     250           1 :   INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},
     251           1 :   FLOAT_TYPES: {"float":0,"double":0},
     252           1 :   or64: function (x, y) {
     253           0 :     var l = (x | 0) | (y | 0);
     254           0 :     var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296;
     255           0 :     return l + h;
     256           1 :   },
     257           1 :   and64: function (x, y) {
     258           0 :     var l = (x | 0) & (y | 0);
     259           0 :     var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296;
     260           0 :     return l + h;
     261           1 :   },
     262           1 :   xor64: function (x, y) {
     263           0 :     var l = (x | 0) ^ (y | 0);
     264           0 :     var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296;
     265           0 :     return l + h;
     266           1 :   },
     267          16 :   getNativeTypeSize: function (type) {
     268          16 :     switch (type) {
     269          16 :       case 'i1': case 'i8': return 1;
     270          16 :       case 'i16': return 2;
     271          16 :       case 'i32': return 4;
     272          16 :       case 'i64': return 8;
     273          16 :       case 'float': return 4;
     274          16 :       case 'double': return 8;
     275          16 :       default: {
     276          16 :         if (type[type.length-1] === '*') {
     277          16 :           return Runtime.QUANTUM_SIZE; // A pointer
     278          16 :         } else if (type[0] === 'i') {
     279          16 :           var bits = parseInt(type.substr(1));
     280          16 :           assert(bits % 8 === 0);
     281          16 :           return bits/8;
     282          16 :         } else {
     283          16 :           return 0;
     284          16 :         }
     285          16 :       }
     286          16 :     }
     287          16 :   },
     288          13 :   getNativeFieldSize: function (type) {
     289          13 :     return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);
     290          13 :   },
     291           1 :   dedup: function dedup(items, ident) {
     292           0 :   var seen = {};
     293           0 :   if (ident) {
     294           0 :     return items.filter(function(item) {
     295           0 :       if (seen[item[ident]]) return false;
     296           0 :       seen[item[ident]] = true;
     297           0 :       return true;
     298           0 :     });
     299           0 :   } else {
     300           0 :     return items.filter(function(item) {
     301           0 :       if (seen[item]) return false;
     302           0 :       seen[item] = true;
     303           0 :       return true;
     304           0 :     });
     305           0 :   }
     306           1 : },
     307           1 :   set: function set() {
     308           0 :   var args = typeof arguments[0] === 'object' ? arguments[0] : arguments;
     309           0 :   var ret = {};
     310           0 :   for (var i = 0; i < args.length; i++) {
     311           0 :     ret[args[i]] = 0;
     312           0 :   }
     313           0 :   return ret;
     314           1 : },
     315           1 :   STACK_ALIGN: 8,
     316           1 :   getAlignSize: function (type, size, vararg) {
     317           0 :     // we align i64s and doubles on 64-bit boundaries, unlike x86
     318           0 :     if (!vararg && (type == 'i64' || type == 'double')) return 8;
     319           0 :     if (!type) return Math.min(size, 8); // align structures internally to 64 bits
     320           0 :     return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);
     321           1 :   },
     322           1 :   calculateStructAlignment: function calculateStructAlignment(type) {
     323           0 :     type.flatSize = 0;
     324           0 :     type.alignSize = 0;
     325           0 :     var diffs = [];
     326           0 :     var prev = -1;
     327           0 :     var index = 0;
     328           0 :     type.flatIndexes = type.fields.map(function(field) {
     329           0 :       index++;
     330           0 :       var size, alignSize;
     331           0 :       if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) {
     332           0 :         size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s.
     333           0 :         alignSize = Runtime.getAlignSize(field, size);
     334           0 :       } else if (Runtime.isStructType(field)) {
     335           0 :         if (field[1] === '0') {
     336           0 :           // this is [0 x something]. When inside another structure like here, it must be at the end,
     337           0 :           // and it adds no size
     338           0 :           // XXX this happens in java-nbody for example... assert(index === type.fields.length, 'zero-length in the middle!');
     339           0 :           size = 0;
     340           0 :           if (Types.types[field]) {
     341           0 :             alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
     342           0 :           } else {
     343           0 :             alignSize = type.alignSize || QUANTUM_SIZE;
     344           0 :           }
     345           0 :         } else {
     346           0 :           size = Types.types[field].flatSize;
     347           0 :           alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
     348           0 :         }
     349           0 :       } else if (field[0] == 'b') {
     350           0 :         // bN, large number field, like a [N x i8]
     351           0 :         size = field.substr(1)|0;
     352           0 :         alignSize = 1;
     353           0 :       } else if (field[0] === '<') {
     354           0 :         // vector type
     355           0 :         size = alignSize = Types.types[field].flatSize; // fully aligned
     356           0 :       } else if (field[0] === 'i') {
     357           0 :         // illegal integer field, that could not be legalized because it is an internal structure field
     358           0 :         // it is ok to have such fields, if we just use them as markers of field size and nothing more complex
     359           0 :         size = alignSize = parseInt(field.substr(1))/8;
     360           0 :         assert(size % 1 === 0, 'cannot handle non-byte-size field ' + field);
     361           0 :       } else {
     362           0 :         assert(false, 'invalid type for calculateStructAlignment');
     363           0 :       }
     364           0 :       if (type.packed) alignSize = 1;
     365           0 :       type.alignSize = Math.max(type.alignSize, alignSize);
     366           0 :       var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory
     367           0 :       type.flatSize = curr + size;
     368           0 :       if (prev >= 0) {
     369           0 :         diffs.push(curr-prev);
     370           0 :       }
     371           0 :       prev = curr;
     372           0 :       return curr;
     373           0 :     });
     374           0 :     if (type.name_ && type.name_[0] === '[') {
     375           0 :       // arrays have 2 elements, so we get the proper difference. then we scale here. that way we avoid
     376           0 :       // allocating a potentially huge array for [999999 x i8] etc.
     377           0 :       type.flatSize = parseInt(type.name_.substr(1))*type.flatSize/2;
     378           0 :     }
     379           0 :     type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize);
     380           0 :     if (diffs.length == 0) {
     381           0 :       type.flatFactor = type.flatSize;
     382           0 :     } else if (Runtime.dedup(diffs).length == 1) {
     383           0 :       type.flatFactor = diffs[0];
     384           0 :     }
     385           0 :     type.needsFlattening = (type.flatFactor != 1);
     386           0 :     return type.flatIndexes;
     387           1 :   },
     388           1 :   generateStructInfo: function (struct, typeName, offset) {
     389           0 :     var type, alignment;
     390           0 :     if (typeName) {
     391           0 :       offset = offset || 0;
     392           0 :       type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName];
     393           0 :       if (!type) return null;
     394           0 :       if (type.fields.length != struct.length) {
     395           0 :         printErr('Number of named fields must match the type for ' + typeName + ': possibly duplicate struct names. Cannot return structInfo');
     396           0 :         return null;
     397           0 :       }
     398           0 :       alignment = type.flatIndexes;
     399           0 :     } else {
     400           0 :       var type = { fields: struct.map(function(item) { return item[0] }) };
     401           0 :       alignment = Runtime.calculateStructAlignment(type);
     402           0 :     }
     403           0 :     var ret = {
     404           0 :       __size__: type.flatSize
     405           0 :     };
     406           0 :     if (typeName) {
     407           0 :       struct.forEach(function(item, i) {
     408           0 :         if (typeof item === 'string') {
     409           0 :           ret[item] = alignment[i] + offset;
     410           0 :         } else {
     411           0 :           // embedded struct
     412           0 :           var key;
     413           0 :           for (var k in item) key = k;
     414           0 :           ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]);
     415           0 :         }
     416           0 :       });
     417           0 :     } else {
     418           0 :       struct.forEach(function(item, i) {
     419           0 :         ret[item[1]] = alignment[i];
     420           0 :       });
     421           0 :     }
     422           0 :     return ret;
     423           1 :   },
     424           1 :   dynCall: function (sig, ptr, args) {
     425           0 :     if (args && args.length) {
     426           0 :       if (!args.splice) args = Array.prototype.slice.call(args);
     427           0 :       args.splice(0, 0, ptr);
     428           0 :       return Module['dynCall_' + sig].apply(null, args);
     429           0 :     } else {
     430           0 :       return Module['dynCall_' + sig].call(null, ptr);
     431           0 :     }
     432           1 :   },
     433           1 :   functionPointers: [],
     434           1 :   addFunction: function (func) {
     435           0 :     for (var i = 0; i < Runtime.functionPointers.length; i++) {
     436           0 :       if (!Runtime.functionPointers[i]) {
     437           0 :         Runtime.functionPointers[i] = func;
     438           0 :         return 2*(1 + i);
     439           0 :       }
     440           0 :     }
     441           0 :     throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
     442           1 :   },
     443           1 :   removeFunction: function (index) {
     444           0 :     Runtime.functionPointers[(index-2)/2] = null;
     445           1 :   },
     446           1 :   getAsmConst: function (code, numArgs) {
     447           0 :     // code is a constant string on the heap, so we can cache these
     448           0 :     if (!Runtime.asmConstCache) Runtime.asmConstCache = {};
     449           0 :     var func = Runtime.asmConstCache[code];
     450           0 :     if (func) return func;
     451           0 :     var args = [];
     452           0 :     for (var i = 0; i < numArgs; i++) {
     453           0 :       args.push(String.fromCharCode(36) + i); // $0, $1 etc
     454           0 :     }
     455           0 :     var source = Pointer_stringify(code);
     456           0 :     if (source[0] === '"') {
     457           0 :       // tolerate EM_ASM("..code..") even though EM_ASM(..code..) is correct
     458           0 :       if (source.indexOf('"', 1) === source.length-1) {
     459           0 :         source = source.substr(1, source.length-2);
     460           0 :       } else {
     461           0 :         // something invalid happened, e.g. EM_ASM("..code($0)..", input)
     462           0 :         abort('invalid EM_ASM input |' + source + '|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)');
     463           0 :       }
     464           0 :     }
     465           0 :     try {
     466           0 :       var evalled = eval('(function(' + args.join(',') + '){ ' + source + ' })'); // new Function does not allow upvars in node
     467           0 :     } catch(e) {
     468           0 :       Module.printErr('error in executing inline EM_ASM code: ' + e + ' on: \n\n' + source + '\n\nwith args |' + args + '| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)');
     469           0 :       throw e;
     470           0 :     }
     471           0 :     return Runtime.asmConstCache[code] = evalled;
     472           1 :   },
     473           1 :   warnOnce: function (text) {
     474           0 :     if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
     475           0 :     if (!Runtime.warnOnce.shown[text]) {
     476           0 :       Runtime.warnOnce.shown[text] = 1;
     477           0 :       Module.printErr(text);
     478           0 :     }
     479           1 :   },
     480           1 :   funcWrappers: {},
     481           1 :   getFuncWrapper: function (func, sig) {
     482           0 :     assert(sig);
     483           0 :     if (!Runtime.funcWrappers[func]) {
     484           0 :       Runtime.funcWrappers[func] = function dynCall_wrapper() {
     485           0 :         return Runtime.dynCall(sig, func, arguments);
     486           0 :       };
     487           0 :     }
     488           0 :     return Runtime.funcWrappers[func];
     489           1 :   },
     490           5 :   UTF8Processor: function () {
     491           5 :     var buffer = [];
     492           5 :     var needed = 0;
     493         174 :     this.processCChar = function (code) {
     494         174 :       code = code & 0xFF;
     495         174 : 
     496         174 :       if (buffer.length == 0) {
     497         174 :         if ((code & 0x80) == 0x00) {        // 0xxxxxxx
     498         174 :           return String.fromCharCode(code);
     499         174 :         }
     500         174 :         buffer.push(code);
     501         174 :         if ((code & 0xE0) == 0xC0) {        // 110xxxxx
     502         174 :           needed = 1;
     503         174 :         } else if ((code & 0xF0) == 0xE0) { // 1110xxxx
     504         174 :           needed = 2;
     505         174 :         } else {                            // 11110xxx
     506         174 :           needed = 3;
     507         174 :         }
     508         174 :         return '';
     509         174 :       }
     510         174 : 
     511         174 :       if (needed) {
     512         174 :         buffer.push(code);
     513         174 :         needed--;
     514         174 :         if (needed > 0) return '';
     515         174 :       }
     516         174 : 
     517         174 :       var c1 = buffer[0];
     518         174 :       var c2 = buffer[1];
     519         174 :       var c3 = buffer[2];
     520         174 :       var c4 = buffer[3];
     521         174 :       var ret;
     522         174 :       if (buffer.length == 2) {
     523         174 :         ret = String.fromCharCode(((c1 & 0x1F) << 6)  | (c2 & 0x3F));
     524         174 :       } else if (buffer.length == 3) {
     525         174 :         ret = String.fromCharCode(((c1 & 0x0F) << 12) | ((c2 & 0x3F) << 6)  | (c3 & 0x3F));
     526         174 :       } else {
     527         174 :         // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
     528         174 :         var codePoint = ((c1 & 0x07) << 18) | ((c2 & 0x3F) << 12) |
     529         174 :                         ((c3 & 0x3F) << 6)  | (c4 & 0x3F);
     530         174 :         ret = String.fromCharCode(
     531         174 :           Math.floor((codePoint - 0x10000) / 0x400) + 0xD800,
     532         174 :           (codePoint - 0x10000) % 0x400 + 0xDC00);
     533         174 :       }
     534         174 :       buffer.length = 0;
     535         174 :       return ret;
     536         174 :     }
     537           5 :     this.processJSString = function processJSString(string) {
     538           4 :       /* TODO: use TextEncoder when present,
     539           4 :         var encoder = new TextEncoder();
     540           4 :         encoder['encoding'] = "utf-8";
     541           4 :         var utf8Array = encoder['encode'](aMsg.data);
     542           4 :       */
     543           4 :       string = unescape(encodeURIComponent(string));
     544           4 :       var ret = [];
     545           4 :       for (var i = 0; i < string.length; i++) {
     546           4 :         ret.push(string.charCodeAt(i));
     547           4 :       }
     548           4 :       return ret;
     549           5 :     }
     550           5 :   },
     551           1 :   getCompilerSetting: function (name) {
     552           0 :     throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work';
     553           1 :   },
     554           1 :   stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+7)&-8); return ret; },
     555          16 :   staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = (((STATICTOP)+7)&-8); return ret; },
     556         225 :   dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + size)|0;DYNAMICTOP = (((DYNAMICTOP)+7)&-8); if (DYNAMICTOP >= TOTAL_MEMORY) enlargeMemory();; return ret; },
     557           4 :   alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 8))*(quantum ? quantum : 8); return ret; },
     558           1 :   makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*(+4294967296))) : ((+((low>>>0)))+((+((high|0)))*(+4294967296)))); return ret; },
     559           1 :   GLOBAL_BASE: 8,
     560           1 :   QUANTUM_SIZE: 4,
     561           1 :   __dummy__: 0
     562           1 : }
     563           1 : 
     564           1 : 
     565           1 : Module['Runtime'] = Runtime;
     566           1 : 
     567           1 : 
     568           1 : 
     569           1 : 
     570           1 : 
     571           1 : 
     572           1 : 
     573           1 : 
     574           1 : 
     575           1 : //========================================
     576           1 : // Runtime essentials
     577           1 : //========================================
     578           1 : 
     579           1 : var __THREW__ = 0; // Used in checking for thrown exceptions.
     580           1 : 
     581           1 : var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort()
     582           1 : var EXITSTATUS = 0;
     583           1 : 
     584           1 : var undef = 0;
     585           1 : // tempInt is used for 32-bit signed values or smaller. tempBigInt is used
     586           1 : // for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt
     587           1 : var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat;
     588           1 : var tempI64, tempI64b;
     589           1 : var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9;
     590           1 : 
     591          25 : function assert(condition, text) {
     592          25 :   if (!condition) {
     593          25 :     abort('Assertion failed: ' + text);
     594          25 :   }
     595          25 : }
     596           1 : 
     597           1 : var globalScope = this;
     598           1 : 
     599           1 : // C calling interface. A convenient way to call C functions (in C files, or
     600           1 : // defined with extern "C").
     601           1 : //
     602           1 : // Note: LLVM optimizations can inline and remove functions, after which you will not be
     603           1 : //       able to call them. Closure can also do so. To avoid that, add your function to
     604           1 : //       the exports using something like
     605           1 : //
     606           1 : //         -s EXPORTED_FUNCTIONS='["_main", "_myfunc"]'
     607           1 : //
     608           1 : // @param ident      The name of the C function (note that C++ functions will be name-mangled - use extern "C")
     609           1 : // @param returnType The return type of the function, one of the JS types 'number', 'string' or 'array' (use 'number' for any C pointer, and
     610           1 : //                   'array' for JavaScript arrays and typed arrays; note that arrays are 8-bit).
     611           1 : // @param argTypes   An array of the types of arguments for the function (if there are no arguments, this can be ommitted). Types are as in returnType,
     612           1 : //                   except that 'array' is not possible (there is no way for us to know the length of the array)
     613           1 : // @param args       An array of the arguments to the function, as native JS values (as in returnType)
     614           1 : //                   Note that string arguments will be stored on the stack (the JS string will become a C string on the stack).
     615           1 : // @return           The return value, as a native JS value (as in returnType)
     616           1 : function ccall(ident, returnType, argTypes, args) {
     617           0 :   return ccallFunc(getCFunc(ident), returnType, argTypes, args);
     618           1 : }
     619           1 : Module["ccall"] = ccall;
     620           1 : 
     621           1 : // Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
     622           1 : function getCFunc(ident) {
     623           0 :   try {
     624           0 :     var func = Module['_' + ident]; // closure exported function
     625           0 :     if (!func) func = eval('_' + ident); // explicit lookup
     626           0 :   } catch(e) {
     627           0 :   }
     628           0 :   assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
     629           0 :   return func;
     630           1 : }
     631           1 : 
     632           1 : // Internal function that does a C call using a function, not an identifier
     633           1 : function ccallFunc(func, returnType, argTypes, args) {
     634           0 :   var stack = 0;
     635           0 :   function toC(value, type) {
     636           0 :     if (type == 'string') {
     637           0 :       if (value === null || value === undefined || value === 0) return 0; // null string
     638           0 :       value = intArrayFromString(value);
     639           0 :       type = 'array';
     640           0 :     }
     641           0 :     if (type == 'array') {
     642           0 :       if (!stack) stack = Runtime.stackSave();
     643           0 :       var ret = Runtime.stackAlloc(value.length);
     644           0 :       writeArrayToMemory(value, ret);
     645           0 :       return ret;
     646           0 :     }
     647           0 :     return value;
     648           0 :   }
     649           0 :   function fromC(value, type) {
     650           0 :     if (type == 'string') {
     651           0 :       return Pointer_stringify(value);
     652           0 :     }
     653           0 :     assert(type != 'array');
     654           0 :     return value;
     655           0 :   }
     656           0 :   var i = 0;
     657           0 :   var cArgs = args ? args.map(function(arg) {
     658           0 :     return toC(arg, argTypes[i++]);
     659           0 :   }) : [];
     660           0 :   var ret = fromC(func.apply(null, cArgs), returnType);
     661           0 :   if (stack) Runtime.stackRestore(stack);
     662           0 :   return ret;
     663           1 : }
     664           1 : 
     665           1 : // Returns a native JS wrapper for a C function. This is similar to ccall, but
     666           1 : // returns a function you can call repeatedly in a normal way. For example:
     667           1 : //
     668           1 : //   var my_function = cwrap('my_c_function', 'number', ['number', 'number']);
     669           1 : //   alert(my_function(5, 22));
     670           1 : //   alert(my_function(99, 12));
     671           1 : //
     672           1 : function cwrap(ident, returnType, argTypes) {
     673           0 :   var func = getCFunc(ident);
     674           0 :   return function() {
     675           0 :     return ccallFunc(func, returnType, argTypes, Array.prototype.slice.call(arguments));
     676           0 :   }
     677           1 : }
     678           1 : Module["cwrap"] = cwrap;
     679           1 : 
     680           1 : // Sets a value in memory in a dynamic way at run-time. Uses the
     681           1 : // type data. This is the same as makeSetValue, except that
     682           1 : // makeSetValue is done at compile-time and generates the needed
     683           1 : // code then, whereas this function picks the right code at
     684           1 : // run-time.
     685           1 : // Note that setValue and getValue only do *aligned* writes and reads!
     686           1 : // Note that ccall uses JS types as for defining types, while setValue and
     687           1 : // getValue need LLVM types ('i8', 'i32') - this is a lower-level operation
     688           6 : function setValue(ptr, value, type, noSafe) {
     689           6 :   type = type || 'i8';
     690           6 :   if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
     691           6 :     switch(type) {
     692           6 :       case 'i1': HEAP8[(ptr)]=value; break;
     693           6 :       case 'i8': HEAP8[(ptr)]=value; break;
     694           6 :       case 'i16': HEAP16[((ptr)>>1)]=value; break;
     695           6 :       case 'i32': HEAP32[((ptr)>>2)]=value; break;
     696           6 :       case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
     697           6 :       case 'float': HEAPF32[((ptr)>>2)]=value; break;
     698           6 :       case 'double': HEAPF64[((ptr)>>3)]=value; break;
     699           6 :       default: abort('invalid type for setValue: ' + type);
     700           6 :     }
     701           6 : }
     702           1 : Module['setValue'] = setValue;
     703           1 : 
     704           1 : // Parallel to setValue.
     705           1 : function getValue(ptr, type, noSafe) {
     706           0 :   type = type || 'i8';
     707           0 :   if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
     708           0 :     switch(type) {
     709           0 :       case 'i1': return HEAP8[(ptr)];
     710           0 :       case 'i8': return HEAP8[(ptr)];
     711           0 :       case 'i16': return HEAP16[((ptr)>>1)];
     712           0 :       case 'i32': return HEAP32[((ptr)>>2)];
     713           0 :       case 'i64': return HEAP32[((ptr)>>2)];
     714           0 :       case 'float': return HEAPF32[((ptr)>>2)];
     715           0 :       case 'double': return HEAPF64[((ptr)>>3)];
     716           0 :       default: abort('invalid type for setValue: ' + type);
     717           0 :     }
     718           0 :   return null;
     719           1 : }
     720           1 : Module['getValue'] = getValue;
     721           1 : 
     722           1 : var ALLOC_NORMAL = 0; // Tries to use _malloc()
     723           1 : var ALLOC_STACK = 1; // Lives for the duration of the current function call
     724           1 : var ALLOC_STATIC = 2; // Cannot be freed
     725           1 : var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
     726           1 : var ALLOC_NONE = 4; // Do not allocate
     727           1 : Module['ALLOC_NORMAL'] = ALLOC_NORMAL;
     728           1 : Module['ALLOC_STACK'] = ALLOC_STACK;
     729           1 : Module['ALLOC_STATIC'] = ALLOC_STATIC;
     730           1 : Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC;
     731           1 : Module['ALLOC_NONE'] = ALLOC_NONE;
     732           1 : 
     733           1 : // allocate(): This is for internal use. You can use it yourself as well, but the interface
     734           1 : //             is a little tricky (see docs right below). The reason is that it is optimized
     735           1 : //             for multiple syntaxes to save space in generated code. So you should
     736           1 : //             normally not use allocate(), and instead allocate memory using _malloc(),
     737           1 : //             initialize it with setValue(), and so forth.
     738           1 : // @slab: An array of data, or a number. If a number, then the size of the block to allocate,
     739           1 : //        in *bytes* (note that this is sometimes confusing: the next parameter does not
     740           1 : //        affect this!)
     741           1 : // @types: Either an array of types, one for each byte (or 0 if no type at that position),
     742           1 : //         or a single type which is used for the entire block. This only matters if there
     743           1 : //         is initial data - if @slab is a number, then this does not matter at all and is
     744           1 : //         ignored.
     745           1 : // @allocator: How to allocate memory, see ALLOC_*
     746          24 : function allocate(slab, types, allocator, ptr) {
     747          24 :   var zeroinit, size;
     748          24 :   if (typeof slab === 'number') {
     749          24 :     zeroinit = true;
     750          24 :     size = slab;
     751          24 :   } else {
     752          24 :     zeroinit = false;
     753          24 :     size = slab.length;
     754          24 :   }
     755          24 : 
     756          24 :   var singleType = typeof types === 'string' ? types : null;
     757          24 : 
     758          24 :   var ret;
     759          24 :   if (allocator == ALLOC_NONE) {
     760          24 :     ret = ptr;
     761          24 :   } else {
     762          24 :     ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
     763          24 :   }
     764          24 : 
     765          24 :   if (zeroinit) {
     766          24 :     var ptr = ret, stop;
     767          24 :     assert((ret & 3) == 0);
     768          24 :     stop = ret + (size & ~3);
     769          24 :     for (; ptr < stop; ptr += 4) {
     770          24 :       HEAP32[((ptr)>>2)]=0;
     771          24 :     }
     772          24 :     stop = ret + size;
     773          24 :     while (ptr < stop) {
     774          24 :       HEAP8[((ptr++)|0)]=0;
     775          24 :     }
     776          24 :     return ret;
     777          24 :   }
     778          24 : 
     779          24 :   if (singleType === 'i8') {
     780          24 :     if (slab.subarray || slab.slice) {
     781          24 :       HEAPU8.set(slab, ret);
     782          24 :     } else {
     783          24 :       HEAPU8.set(new Uint8Array(slab), ret);
     784          24 :     }
     785          24 :     return ret;
     786          24 :   }
     787          24 : 
     788          24 :   var i = 0, type, typeSize, previousType;
     789          24 :   while (i < size) {
     790          24 :     var curr = slab[i];
     791          24 : 
     792          24 :     if (typeof curr === 'function') {
     793          24 :       curr = Runtime.getFunctionIndex(curr);
     794          24 :     }
     795          24 : 
     796          24 :     type = singleType || types[i];
     797          24 :     if (type === 0) {
     798          24 :       i++;
     799          24 :       continue;
     800          24 :     }
     801          24 : 
     802          24 :     if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
     803          24 : 
     804          24 :     setValue(ret+i, curr, type);
     805          24 : 
     806          24 :     // no need to look up size unless type changes, so cache it
     807          24 :     if (previousType !== type) {
     808          24 :       typeSize = Runtime.getNativeTypeSize(type);
     809          24 :       previousType = type;
     810          24 :     }
     811          24 :     i += typeSize;
     812          24 :   }
     813          24 : 
     814          24 :   return ret;
     815          24 : }
     816           1 : Module['allocate'] = allocate;
     817           1 : 
     818           8 : function Pointer_stringify(ptr, /* optional */ length) {
     819           8 :   // TODO: use TextDecoder
     820           8 :   // Find the length, and check for UTF while doing so
     821           8 :   var hasUtf = false;
     822           8 :   var t;
     823           8 :   var i = 0;
     824           8 :   while (1) {
     825           8 :     t = HEAPU8[(((ptr)+(i))|0)];
     826           8 :     if (t >= 128) hasUtf = true;
     827           8 :     else if (t == 0 && !length) break;
     828           8 :     i++;
     829           8 :     if (length && i == length) break;
     830           8 :   }
     831           8 :   if (!length) length = i;
     832           8 : 
     833           8 :   var ret = '';
     834           8 : 
     835           8 :   if (!hasUtf) {
     836           8 :     var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
     837           8 :     var curr;
     838           8 :     while (length > 0) {
     839           8 :       curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));
     840           8 :       ret = ret ? ret + curr : curr;
     841           8 :       ptr += MAX_CHUNK;
     842           8 :       length -= MAX_CHUNK;
     843           8 :     }
     844           8 :     return ret;
     845           8 :   }
     846           8 : 
     847           8 :   var utf8 = new Runtime.UTF8Processor();
     848           8 :   for (i = 0; i < length; i++) {
     849           8 :     t = HEAPU8[(((ptr)+(i))|0)];
     850           8 :     ret += utf8.processCChar(t);
     851           8 :   }
     852           8 :   return ret;
     853           8 : }
     854           1 : Module['Pointer_stringify'] = Pointer_stringify;
     855           1 : 
     856           1 : // Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
     857           1 : // a copy of that string as a Javascript String object.
     858           1 : function UTF16ToString(ptr) {
     859           0 :   var i = 0;
     860           0 : 
     861           0 :   var str = '';
     862           0 :   while (1) {
     863           0 :     var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
     864           0 :     if (codeUnit == 0)
     865           0 :       return str;
     866           0 :     ++i;
     867           0 :     // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
     868           0 :     str += String.fromCharCode(codeUnit);
     869           0 :   }
     870           1 : }
     871           1 : Module['UTF16ToString'] = UTF16ToString;
     872           1 : 
     873           1 : // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
     874           1 : // null-terminated and encoded in UTF16LE form. The copy will require at most (str.length*2+1)*2 bytes of space in the HEAP.
     875           1 : function stringToUTF16(str, outPtr) {
     876           0 :   for(var i = 0; i < str.length; ++i) {
     877           0 :     // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
     878           0 :     var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
     879           0 :     HEAP16[(((outPtr)+(i*2))>>1)]=codeUnit;
     880           0 :   }
     881           0 :   // Null-terminate the pointer to the HEAP.
     882           0 :   HEAP16[(((outPtr)+(str.length*2))>>1)]=0;
     883           1 : }
     884           1 : Module['stringToUTF16'] = stringToUTF16;
     885           1 : 
     886           1 : // Given a pointer 'ptr' to a null-terminated UTF32LE-encoded string in the emscripten HEAP, returns
     887           1 : // a copy of that string as a Javascript String object.
     888           1 : function UTF32ToString(ptr) {
     889           0 :   var i = 0;
     890           0 : 
     891           0 :   var str = '';
     892           0 :   while (1) {
     893           0 :     var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
     894           0 :     if (utf32 == 0)
     895           0 :       return str;
     896           0 :     ++i;
     897           0 :     // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
     898           0 :     if (utf32 >= 0x10000) {
     899           0 :       var ch = utf32 - 0x10000;
     900           0 :       str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
     901           0 :     } else {
     902           0 :       str += String.fromCharCode(utf32);
     903           0 :     }
     904           0 :   }
     905           1 : }
     906           1 : Module['UTF32ToString'] = UTF32ToString;
     907           1 : 
     908           1 : // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
     909           1 : // null-terminated and encoded in UTF32LE form. The copy will require at most (str.length+1)*4 bytes of space in the HEAP,
     910           1 : // but can use less, since str.length does not return the number of characters in the string, but the number of UTF-16 code units in the string.
     911           1 : function stringToUTF32(str, outPtr) {
     912           0 :   var iChar = 0;
     913           0 :   for(var iCodeUnit = 0; iCodeUnit < str.length; ++iCodeUnit) {
     914           0 :     // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
     915           0 :     var codeUnit = str.charCodeAt(iCodeUnit); // possibly a lead surrogate
     916           0 :     if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
     917           0 :       var trailSurrogate = str.charCodeAt(++iCodeUnit);
     918           0 :       codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
     919           0 :     }
     920           0 :     HEAP32[(((outPtr)+(iChar*4))>>2)]=codeUnit;
     921           0 :     ++iChar;
     922           0 :   }
     923           0 :   // Null-terminate the pointer to the HEAP.
     924           0 :   HEAP32[(((outPtr)+(iChar*4))>>2)]=0;
     925           1 : }
     926           1 : Module['stringToUTF32'] = stringToUTF32;
     927           1 : 
     928           1 : function demangle(func) {
     929           0 :   var i = 3;
     930           0 :   // params, etc.
     931           0 :   var basicTypes = {
     932           0 :     'v': 'void',
     933           0 :     'b': 'bool',
     934           0 :     'c': 'char',
     935           0 :     's': 'short',
     936           0 :     'i': 'int',
     937           0 :     'l': 'long',
     938           0 :     'f': 'float',
     939           0 :     'd': 'double',
     940           0 :     'w': 'wchar_t',
     941           0 :     'a': 'signed char',
     942           0 :     'h': 'unsigned char',
     943           0 :     't': 'unsigned short',
     944           0 :     'j': 'unsigned int',
     945           0 :     'm': 'unsigned long',
     946           0 :     'x': 'long long',
     947           0 :     'y': 'unsigned long long',
     948           0 :     'z': '...'
     949           0 :   };
     950           0 :   var subs = [];
     951           0 :   var first = true;
     952           0 :   function dump(x) {
     953           0 :     //return;
     954           0 :     if (x) Module.print(x);
     955           0 :     Module.print(func);
     956           0 :     var pre = '';
     957           0 :     for (var a = 0; a < i; a++) pre += ' ';
     958           0 :     Module.print (pre + '^');
     959           0 :   }
     960           0 :   function parseNested() {
     961           0 :     i++;
     962           0 :     if (func[i] === 'K') i++; // ignore const
     963           0 :     var parts = [];
     964           0 :     while (func[i] !== 'E') {
     965           0 :       if (func[i] === 'S') { // substitution
     966           0 :         i++;
     967           0 :         var next = func.indexOf('_', i);
     968           0 :         var num = func.substring(i, next) || 0;
     969           0 :         parts.push(subs[num] || '?');
     970           0 :         i = next+1;
     971           0 :         continue;
     972           0 :       }
     973           0 :       if (func[i] === 'C') { // constructor
     974           0 :         parts.push(parts[parts.length-1]);
     975           0 :         i += 2;
     976           0 :         continue;
     977           0 :       }
     978           0 :       var size = parseInt(func.substr(i));
     979           0 :       var pre = size.toString().length;
     980           0 :       if (!size || !pre) { i--; break; } // counter i++ below us
     981           0 :       var curr = func.substr(i + pre, size);
     982           0 :       parts.push(curr);
     983           0 :       subs.push(curr);
     984           0 :       i += pre + size;
     985           0 :     }
     986           0 :     i++; // skip E
     987           0 :     return parts;
     988           0 :   }
     989           0 :   function parse(rawList, limit, allowVoid) { // main parser
     990           0 :     limit = limit || Infinity;
     991           0 :     var ret = '', list = [];
     992           0 :     function flushList() {
     993           0 :       return '(' + list.join(', ') + ')';
     994           0 :     }
     995           0 :     var name;
     996           0 :     if (func[i] === 'N') {
     997           0 :       // namespaced N-E
     998           0 :       name = parseNested().join('::');
     999           0 :       limit--;
    1000           0 :       if (limit === 0) return rawList ? [name] : name;
    1001           0 :     } else {
    1002           0 :       // not namespaced
    1003           0 :       if (func[i] === 'K' || (first && func[i] === 'L')) i++; // ignore const and first 'L'
    1004           0 :       var size = parseInt(func.substr(i));
    1005           0 :       if (size) {
    1006           0 :         var pre = size.toString().length;
    1007           0 :         name = func.substr(i + pre, size);
    1008           0 :         i += pre + size;
    1009           0 :       }
    1010           0 :     }
    1011           0 :     first = false;
    1012           0 :     if (func[i] === 'I') {
    1013           0 :       i++;
    1014           0 :       var iList = parse(true);
    1015           0 :       var iRet = parse(true, 1, true);
    1016           0 :       ret += iRet[0] + ' ' + name + '<' + iList.join(', ') + '>';
    1017           0 :     } else {
    1018           0 :       ret = name;
    1019           0 :     }
    1020           0 :     paramLoop: while (i < func.length && limit-- > 0) {
    1021           0 :       //dump('paramLoop');
    1022           0 :       var c = func[i++];
    1023           0 :       if (c in basicTypes) {
    1024           0 :         list.push(basicTypes[c]);
    1025           0 :       } else {
    1026           0 :         switch (c) {
    1027           0 :           case 'P': list.push(parse(true, 1, true)[0] + '*'); break; // pointer
    1028           0 :           case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference
    1029           0 :           case 'L': { // literal
    1030           0 :             i++; // skip basic type
    1031           0 :             var end = func.indexOf('E', i);
    1032           0 :             var size = end - i;
    1033           0 :             list.push(func.substr(i, size));
    1034           0 :             i += size + 2; // size + 'EE'
    1035           0 :             break;
    1036           0 :           }
    1037           0 :           case 'A': { // array
    1038           0 :             var size = parseInt(func.substr(i));
    1039           0 :             i += size.toString().length;
    1040           0 :             if (func[i] !== '_') throw '?';
    1041           0 :             i++; // skip _
    1042           0 :             list.push(parse(true, 1, true)[0] + ' [' + size + ']');
    1043           0 :             break;
    1044           0 :           }
    1045           0 :           case 'E': break paramLoop;
    1046           0 :           default: ret += '?' + c; break paramLoop;
    1047           0 :         }
    1048           0 :       }
    1049           0 :     }
    1050           0 :     if (!allowVoid && list.length === 1 && list[0] === 'void') list = []; // avoid (void)
    1051           0 :     if (rawList) {
    1052           0 :       if (ret) {
    1053           0 :         list.push(ret + '?');
    1054           0 :       }
    1055           0 :       return list;
    1056           0 :     } else {
    1057           0 :       return ret + flushList();
    1058           0 :     }
    1059           0 :   }
    1060           0 :   try {
    1061           0 :     // Special-case the entry point, since its name differs from other name mangling.
    1062           0 :     if (func == 'Object._main' || func == '_main') {
    1063           0 :       return 'main()';
    1064           0 :     }
    1065           0 :     if (typeof func === 'number') func = Pointer_stringify(func);
    1066           0 :     if (func[0] !== '_') return func;
    1067           0 :     if (func[1] !== '_') return func; // C function
    1068           0 :     if (func[2] !== 'Z') return func;
    1069           0 :     switch (func[3]) {
    1070           0 :       case 'n': return 'operator new()';
    1071           0 :       case 'd': return 'operator delete()';
    1072           0 :     }
    1073           0 :     return parse();
    1074           0 :   } catch(e) {
    1075           0 :     return func;
    1076           0 :   }
    1077           1 : }
    1078           1 : 
    1079           1 : function demangleAll(text) {
    1080           0 :   return text.replace(/__Z[\w\d_]+/g, function(x) { var y = demangle(x); return x === y ? x : (x + ' [' + y + ']') });
    1081           1 : }
    1082           1 : 
    1083           1 : function stackTrace() {
    1084           0 :   var stack = new Error().stack;
    1085           0 :   return stack ? demangleAll(stack) : '(no stack trace available)'; // Stack trace is not available at least on IE10 and Safari 6.
    1086           1 : }
    1087           1 : 
    1088           1 : // Memory management
    1089           1 : 
    1090           1 : var PAGE_SIZE = 4096;
    1091           1 : function alignMemoryPage(x) {
    1092           1 :   return (x+4095)&-4096;
    1093           1 : }
    1094           1 : 
    1095           1 : var HEAP;
    1096           1 : var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
    1097           1 : 
    1098           1 : var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area
    1099           1 : var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
    1100           1 : var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk
    1101           1 : 
    1102           1 : function enlargeMemory() {
    1103           0 :   abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.');
    1104           1 : }
    1105           1 : 
    1106           1 : var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
    1107           1 : var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728;
    1108           1 : var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152;
    1109           1 : 
    1110           1 : var totalMemory = 4096;
    1111           1 : while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) {
    1112           1 :   if (totalMemory < 16*1024*1024) {
    1113           1 :     totalMemory *= 2;
    1114           1 :   } else {
    1115           1 :     totalMemory += 16*1024*1024
    1116           1 :   }
    1117           1 : }
    1118           1 : if (totalMemory !== TOTAL_MEMORY) {
    1119           1 :   Module.printErr('increasing TOTAL_MEMORY to ' + totalMemory + ' to be more reasonable');
    1120           1 :   TOTAL_MEMORY = totalMemory;
    1121           1 : }
    1122           1 : 
    1123           1 : // Initialize the runtime's memory
    1124           1 : // check for full engine support (use string 'subarray' to avoid closure compiler confusion)
    1125           1 : assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']),
    1126           1 :        'JS engine does not provide full typed array support');
    1127           1 : 
    1128           1 : var buffer = new ArrayBuffer(TOTAL_MEMORY);
    1129           1 : HEAP8 = new Int8Array(buffer);
    1130           1 : HEAP16 = new Int16Array(buffer);
    1131           1 : HEAP32 = new Int32Array(buffer);
    1132           1 : HEAPU8 = new Uint8Array(buffer);
    1133           1 : HEAPU16 = new Uint16Array(buffer);
    1134           1 : HEAPU32 = new Uint32Array(buffer);
    1135           1 : HEAPF32 = new Float32Array(buffer);
    1136           1 : HEAPF64 = new Float64Array(buffer);
    1137           1 : 
    1138           1 : // Endianness check (note: assumes compiler arch was little-endian)
    1139           1 : HEAP32[0] = 255;
    1140           1 : assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system');
    1141           1 : 
    1142           1 : Module['HEAP'] = HEAP;
    1143           1 : Module['HEAP8'] = HEAP8;
    1144           1 : Module['HEAP16'] = HEAP16;
    1145           1 : Module['HEAP32'] = HEAP32;
    1146           1 : Module['HEAPU8'] = HEAPU8;
    1147           1 : Module['HEAPU16'] = HEAPU16;
    1148           1 : Module['HEAPU32'] = HEAPU32;
    1149           1 : Module['HEAPF32'] = HEAPF32;
    1150           1 : Module['HEAPF64'] = HEAPF64;
    1151           1 : 
    1152           5 : function callRuntimeCallbacks(callbacks) {
    1153           5 :   while(callbacks.length > 0) {
    1154           5 :     var callback = callbacks.shift();
    1155           5 :     if (typeof callback == 'function') {
    1156           5 :       callback();
    1157           5 :       continue;
    1158           5 :     }
    1159           5 :     var func = callback.func;
    1160           5 :     if (typeof func === 'number') {
    1161           5 :       if (callback.arg === undefined) {
    1162           5 :         Runtime.dynCall('v', func);
    1163           5 :       } else {
    1164           5 :         Runtime.dynCall('vi', func, [callback.arg]);
    1165           5 :       }
    1166           5 :     } else {
    1167           5 :       func(callback.arg === undefined ? null : callback.arg);
    1168           5 :     }
    1169           5 :   }
    1170           5 : }
    1171           1 : 
    1172           1 : var __ATPRERUN__  = []; // functions called before the runtime is initialized
    1173           1 : var __ATINIT__    = []; // functions called during startup
    1174           1 : var __ATMAIN__    = []; // functions called when main() is to be run
    1175           1 : var __ATEXIT__    = []; // functions called during shutdown
    1176           1 : var __ATPOSTRUN__ = []; // functions called after the runtime has exited
    1177           1 : 
    1178           1 : var runtimeInitialized = false;
    1179           1 : 
    1180           1 : function preRun() {
    1181           1 :   // compatibility - merge in anything from Module['preRun'] at this time
    1182           1 :   if (Module['preRun']) {
    1183           1 :     if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
    1184           1 :     while (Module['preRun'].length) {
    1185           1 :       addOnPreRun(Module['preRun'].shift());
    1186           1 :     }
    1187           1 :   }
    1188           1 :   callRuntimeCallbacks(__ATPRERUN__);
    1189           1 : }
    1190           1 : 
    1191           2 : function ensureInitRuntime() {
    1192           2 :   if (runtimeInitialized) return;
    1193           2 :   runtimeInitialized = true;
    1194           2 :   callRuntimeCallbacks(__ATINIT__);
    1195           2 : }
    1196           1 : 
    1197           1 : function preMain() {
    1198           1 :   callRuntimeCallbacks(__ATMAIN__);
    1199           1 : }
    1200           1 : 
    1201           1 : function exitRuntime() {
    1202           1 :   callRuntimeCallbacks(__ATEXIT__);
    1203           1 : }
    1204           1 : 
    1205           1 : function postRun() {
    1206           1 :   // compatibility - merge in anything from Module['postRun'] at this time
    1207           1 :   if (Module['postRun']) {
    1208           1 :     if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
    1209           1 :     while (Module['postRun'].length) {
    1210           1 :       addOnPostRun(Module['postRun'].shift());
    1211           1 :     }
    1212           1 :   }
    1213           1 :   callRuntimeCallbacks(__ATPOSTRUN__);
    1214           1 : }
    1215           1 : 
    1216           2 : function addOnPreRun(cb) {
    1217           2 :   __ATPRERUN__.unshift(cb);
    1218           2 : }
    1219           1 : Module['addOnPreRun'] = Module.addOnPreRun = addOnPreRun;
    1220           1 : 
    1221           1 : function addOnInit(cb) {
    1222           0 :   __ATINIT__.unshift(cb);
    1223           1 : }
    1224           1 : Module['addOnInit'] = Module.addOnInit = addOnInit;
    1225           1 : 
    1226           1 : function addOnPreMain(cb) {
    1227           0 :   __ATMAIN__.unshift(cb);
    1228           1 : }
    1229           1 : Module['addOnPreMain'] = Module.addOnPreMain = addOnPreMain;
    1230           1 : 
    1231           1 : function addOnExit(cb) {
    1232           0 :   __ATEXIT__.unshift(cb);
    1233           1 : }
    1234           1 : Module['addOnExit'] = Module.addOnExit = addOnExit;
    1235           1 : 
    1236           1 : function addOnPostRun(cb) {
    1237           1 :   __ATPOSTRUN__.unshift(cb);
    1238           1 : }
    1239           1 : Module['addOnPostRun'] = Module.addOnPostRun = addOnPostRun;
    1240           1 : 
    1241           1 : // Tools
    1242           1 : 
    1243           1 : // This processes a JS string into a C-line array of numbers, 0-terminated.
    1244           1 : // For LLVM-originating strings, see parser.js:parseLLVMString function
    1245           4 : function intArrayFromString(stringy, dontAddNull, length /* optional */) {
    1246           4 :   var ret = (new Runtime.UTF8Processor()).processJSString(stringy);
    1247           4 :   if (length) {
    1248           4 :     ret.length = length;
    1249           4 :   }
    1250           4 :   if (!dontAddNull) {
    1251           4 :     ret.push(0);
    1252           4 :   }
    1253           4 :   return ret;
    1254           4 : }
    1255           1 : Module['intArrayFromString'] = intArrayFromString;
    1256           1 : 
    1257           1 : function intArrayToString(array) {
    1258           0 :   var ret = [];
    1259           0 :   for (var i = 0; i < array.length; i++) {
    1260           0 :     var chr = array[i];
    1261           0 :     if (chr > 0xFF) {
    1262           0 :       chr &= 0xFF;
    1263           0 :     }
    1264           0 :     ret.push(String.fromCharCode(chr));
    1265           0 :   }
    1266           0 :   return ret.join('');
    1267           1 : }
    1268           1 : Module['intArrayToString'] = intArrayToString;
    1269           1 : 
    1270           1 : // Write a Javascript array to somewhere in the heap
    1271           1 : function writeStringToMemory(string, buffer, dontAddNull) {
    1272           0 :   var array = intArrayFromString(string, dontAddNull);
    1273           0 :   var i = 0;
    1274           0 :   while (i < array.length) {
    1275           0 :     var chr = array[i];
    1276           0 :     HEAP8[(((buffer)+(i))|0)]=chr;
    1277           0 :     i = i + 1;
    1278           0 :   }
    1279           1 : }
    1280           1 : Module['writeStringToMemory'] = writeStringToMemory;
    1281           1 : 
    1282           1 : function writeArrayToMemory(array, buffer) {
    1283           0 :   for (var i = 0; i < array.length; i++) {
    1284           0 :     HEAP8[(((buffer)+(i))|0)]=array[i];
    1285           0 :   }
    1286           1 : }
    1287           1 : Module['writeArrayToMemory'] = writeArrayToMemory;
    1288           1 : 
    1289           6 : function writeAsciiToMemory(str, buffer, dontAddNull) {
    1290           6 :   for (var i = 0; i < str.length; i++) {
    1291           6 :     HEAP8[(((buffer)+(i))|0)]=str.charCodeAt(i);
    1292           6 :   }
    1293           6 :   if (!dontAddNull) HEAP8[(((buffer)+(str.length))|0)]=0;
    1294           6 : }
    1295           1 : Module['writeAsciiToMemory'] = writeAsciiToMemory;
    1296           1 : 
    1297           1 : function unSign(value, bits, ignore) {
    1298           0 :   if (value >= 0) {
    1299           0 :     return value;
    1300           0 :   }
    1301           0 :   return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
    1302           0 :                     : Math.pow(2, bits)         + value;
    1303           1 : }
    1304          26 : function reSign(value, bits, ignore) {
    1305          26 :   if (value <= 0) {
    1306          26 :     return value;
    1307          26 :   }
    1308          26 :   var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
    1309          26 :                         : Math.pow(2, bits-1);
    1310          26 :   if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
    1311          26 :                                                        // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
    1312          26 :                                                        // TODO: In i64 mode 1, resign the two parts separately and safely
    1313          26 :     value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
    1314          26 :   }
    1315          26 :   return value;
    1316          26 : }
    1317           1 : 
    1318           1 : // check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 )
    1319           1 : if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) {
    1320           0 :   var ah  = a >>> 16;
    1321           0 :   var al = a & 0xffff;
    1322           0 :   var bh  = b >>> 16;
    1323           0 :   var bl = b & 0xffff;
    1324           0 :   return (al*bl + ((ah*bl + al*bh) << 16))|0;
    1325           1 : };
    1326           1 : Math.imul = Math['imul'];
    1327           1 : 
    1328           1 : 
    1329           1 : var Math_abs = Math.abs;
    1330           1 : var Math_cos = Math.cos;
    1331           1 : var Math_sin = Math.sin;
    1332           1 : var Math_tan = Math.tan;
    1333           1 : var Math_acos = Math.acos;
    1334           1 : var Math_asin = Math.asin;
    1335           1 : var Math_atan = Math.atan;
    1336           1 : var Math_atan2 = Math.atan2;
    1337           1 : var Math_exp = Math.exp;
    1338           1 : var Math_log = Math.log;
    1339           1 : var Math_sqrt = Math.sqrt;
    1340           1 : var Math_ceil = Math.ceil;
    1341           1 : var Math_floor = Math.floor;
    1342           1 : var Math_pow = Math.pow;
    1343           1 : var Math_imul = Math.imul;
    1344           1 : var Math_fround = Math.fround;
    1345           1 : var Math_min = Math.min;
    1346           1 : 
    1347           1 : // A counter of dependencies for calling run(). If we need to
    1348           1 : // do asynchronous work before running, increment this and
    1349           1 : // decrement it. Incrementing must happen in a place like
    1350           1 : // PRE_RUN_ADDITIONS (used by emcc to add file preloading).
    1351           1 : // Note that you can add dependencies in preRun, even though
    1352           1 : // it happens right before run - run will be postponed until
    1353           1 : // the dependencies are met.
    1354           1 : var runDependencies = 0;
    1355           1 : var runDependencyWatcher = null;
    1356           1 : var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled
    1357           1 : 
    1358           1 : function addRunDependency(id) {
    1359           0 :   runDependencies++;
    1360           0 :   if (Module['monitorRunDependencies']) {
    1361           0 :     Module['monitorRunDependencies'](runDependencies);
    1362           0 :   }
    1363           1 : }
    1364           1 : Module['addRunDependency'] = addRunDependency;
    1365           1 : function removeRunDependency(id) {
    1366           0 :   runDependencies--;
    1367           0 :   if (Module['monitorRunDependencies']) {
    1368           0 :     Module['monitorRunDependencies'](runDependencies);
    1369           0 :   }
    1370           0 :   if (runDependencies == 0) {
    1371           0 :     if (runDependencyWatcher !== null) {
    1372           0 :       clearInterval(runDependencyWatcher);
    1373           0 :       runDependencyWatcher = null;
    1374           0 :     }
    1375           0 :     if (dependenciesFulfilled) {
    1376           0 :       var callback = dependenciesFulfilled;
    1377           0 :       dependenciesFulfilled = null;
    1378           0 :       callback(); // can add another dependenciesFulfilled
    1379           0 :     }
    1380           0 :   }
    1381           1 : }
    1382           1 : Module['removeRunDependency'] = removeRunDependency;
    1383           1 : 
    1384           1 : Module["preloadedImages"] = {}; // maps url to image data
    1385           1 : Module["preloadedAudios"] = {}; // maps url to audio data
    1386           1 : 
    1387           1 : 
    1388           1 : var memoryInitializer = null;
    1389           1 : 
    1390           1 : // === Body ===
    1391           1 : 
    1392           1 : 
    1393           1 : 
    1394           1 : 
    1395           1 : 
    1396           1 : STATIC_BASE = 8;
    1397           1 : 
    1398           1 : STATICTOP = STATIC_BASE + Runtime.alignMemory(13467);
    1399           1 : /* global initializers */ __ATINIT__.push();
    1400           1 : 
    1401           1 : 
    1402           1 : /* memory initializer */ allocate([99,97,110,110,111,116,32,99,114,101,97,116,101,32,115,116,97,116,101,58,32,110,111,116,32,101,110,111,117,103,104,32,109,101,109,111,114,121,0,0,40,101,114,114,111,114,32,111,98,106,101,99,116,32,105,115,32,110,111,116,32,97,32,115,116,114,105,110,103,41,0,0,88,0,0,0,0,0,0,0,108,117,97,0,0,0,0,0,76,85,65,95,78,79,69,78,86,0,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,112,114,105,110,116,0,0,0,0,0,0,0,112,114,105,110,116,0,0,0,101,114,114,111,114,32,99,97,108,108,105,110,103,32,39,112,114,105,110,116,39,32,40,37,115,41,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,110,116,101,114,114,117,112,116,101,100,33,0,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,40,110,111,32,101,114,114,111,114,32,109,101,115,115,97,103,101,41,0,0,0,0,0,0,61,115,116,100,105,110,0,0,60,101,111,102,62,0,0,0,114,101,116,117,114,110,32,37,115,0,0,0,0,0,0,0,95,80,82,79,77,80,84,0,95,80,82,79,77,80,84,50,0,0,0,0,0,0,0,0,62,32,0,0,0,0,0,0,62,62,32,0,0,0,0,0,97,114,103,0,0,0,0,0,45,0,0,0,0,0,0,0,45,45,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,116,111,32,115,99,114,105,112,116,0,0,0,0,61,40,99,111,109,109,97,110,100,32,108,105,110,101,41,0,114,101,113,117,105,114,101,0,61,76,85,65,95,73,78,73,84,95,53,95,50,0,0,0,61,76,85,65,95,73,78,73,84,0,0,0,0,0,0,0,76,117,97,32,53,46,50,46,50,32,32,67,111,112,121,114,105,103,104,116,32,40,67,41,32,49,57,57,52,45,50,48,49,51,32,76,117,97,46,111,114,103,44,32,80,85,67,45,82,105,111,0,0,0,0,0,37,115,58,32,0,0,0,0,39,37,115,39,32,110,101,101,100,115,32,97,114,103,117,109,101,110,116,10,0,0,0,0,117,110,114,101,99,111,103,110,105,122,101,100,32,111,112,116,105,111,110,32,39,37,115,39,10,0,0,0,0,0,0,0,117,115,97,103,101,58,32,37,115,32,91,111,112,116,105,111,110,115,93,32,91,115,99,114,105,112,116,32,91,97,114,103,115,93,93,10,65,118,97,105,108,97,98,108,101,32,111,112,116,105,111,110,115,32,97,114,101,58,10,32,32,45,101,32,115,116,97,116,32,32,101,120,101,99,117,116,101,32,115,116,114,105,110,103,32,39,115,116,97,116,39,10,32,32,45,105,32,32,32,32,32,32,32,101,110,116,101,114,32,105,110,116,101,114,97,99,116,105,118,101,32,109,111,100,101,32,97,102,116,101,114,32,101,120,101,99,117,116,105,110,103,32,39,115,99,114,105,112,116,39,10,32,32,45,108,32,110,97,109,101,32,32,114,101,113,117,105,114,101,32,108,105,98,114,97,114,121,32,39,110,97,109,101,39,10,32,32,45,118,32,32,32,32,32,32,32,115,104,111,119,32,118,101,114,115,105,111,110,32,105,110,102,111,114,109,97,116,105,111,110,10,32,32,45,69,32,32,32,32,32,32,32,105,103,110,111,114,101,32,101,110,118,105,114,111,110,109,101,110,116,32,118,97,114,105,97,98,108,101,115,10,32,32,45,45,32,32,32,32,32,32,32,115,116,111,112,32,104,97,110,100,108,105,110,103,32,111,112,116,105,111,110,115,10,32,32,45,32,32,32,32,32,32,32,32,115,116,111,112,32,104,97,110,100,108,105,110,103,32,111,112,116,105,111,110,115,32,97,110,100,32,101,120,101,99,117,116,101,32,115,116,100,105,110,10,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,0,0,0,0,0,96,127,64,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,115,116,97,99,107,32,116,114,97,99,101,98,97,99,107,58,0,0,0,0,0,0,0,0,10,9,46,46,46,0,0,0,83,108,110,116,0,0,0,0,10,9,37,115,58,0,0,0,37,100,58,0,0,0,0,0,32,105,110,32,0,0,0,0,10,9,40,46,46,46,116,97,105,108,32,99,97,108,108,115,46,46,46,41,0,0,0,0,98,97,100,32,97,114,103,117,109,101,110,116,32,35,37,100,32,40,37,115,41,0,0,0,110,0,0,0,0,0,0,0,109,101,116,104,111,100,0,0,99,97,108,108,105,110,103,32,39,37,115,39,32,111,110,32,98,97,100,32,115,101,108,102,32,40,37,115,41,0,0,0,63,0,0,0,0,0,0,0,98,97,100,32,97,114,103,117,109,101,110,116,32,35,37,100,32,116,111,32,39,37,115,39,32,40,37,115,41,0,0,0,83,108,0,0,0,0,0,0,37,115,58,37,100,58,32,0,0,0,0,0,0,0,0,0,37,115,58,32,37,115,0,0,101,120,105,116,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,115,39,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,32,40,37,115,41,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,118,97,108,117,101,32,101,120,112,101,99,116,101,100,0,0,98,117,102,102,101,114,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,0,0,61,115,116,100,105,110,0,0,64,37,115,0,0,0,0,0,114,0,0,0,0,0,0,0,111,112,101,110,0,0,0,0,114,98,0,0,0,0,0,0,114,101,111,112,101,110,0,0,114,101,97,100,0,0,0,0,111,98,106,101,99,116,32,108,101,110,103,116,104,32,105,115,32,110,111,116,32,97,32,110,117,109,98,101,114,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,116,114,117,101,0,0,0,0,102,97,108,115,101,0,0,0,110,105,108,0,0,0,0,0,37,115,58,32,37,112,0,0,95,76,79,65,68,69,68,0,110,97,109,101,32,99,111,110,102,108,105,99,116,32,102,111,114,32,109,111,100,117,108,101,32,39,37,115,39,0,0,0,116,111,111,32,109,97,110,121,32,117,112,118,97,108,117,101,115,0,0,0,0,0,0,0,109,117,108,116,105,112,108,101,32,76,117,97,32,86,77,115,32,100,101,116,101,99,116,101,100,0,0,0,0,0,0,0,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,58,32,97,112,112,46,32,110,101,101,100,115,32,37,102,44,32,76,117,97,32,99,111,114,101,32,112,114,111,118,105,100,101,115,32,37,102,0,0,0,98,97,100,32,99,111,110,118,101,114,115,105,111,110,32,110,117,109,98,101,114,45,62,105,110,116,59,32,109,117,115,116,32,114,101,99,111,109,112,105,108,101,32,76,117,97,32,119,105,116,104,32,112,114,111,112,101,114,32,115,101,116,116,105,110,103,115,0,0,0,0,0,80,65,78,73,67,58,32,117,110,112,114,111,116,101,99,116,101,100,32,101,114,114,111,114,32,105,110,32,99,97,108,108,32,116,111,32,76,117,97,32,65,80,73,32,40,37,115,41,10,0,0,0,0,0,0,0,239,187,191,0,0,0,0,0,99,97,110,110,111,116,32,37,115,32,37,115,58,32,37,115,0,0,0,0,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,44,32,103,111,116,32,37,115,0,0,0,0,0,102,0,0,0,0,0,0,0,46,0,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,39,37,115,39,0,0,0,109,97,105,110,32,99,104,117,110,107,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,60,37,115,58,37,100,62,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,37,115,32,37,115,32,39,37,115,39,32,40,97,32,37,115,32,118,97,108,117,101,41,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,37,115,32,97,32,37,115,32,118,97,108,117,101,0,0,0,0,0,0,0,0,99,111,110,99,97,116,101,110,97,116,101,0,0,0,0,0,112,101,114,102,111,114,109,32,97,114,105,116,104,109,101,116,105,99,32,111,110,0,0,0,97,116,116,101,109,112,116,32,116,111,32,99,111,109,112,97,114,101,32,116,119,111,32,37,115,32,118,97,108,117,101,115,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,99,111,109,112,97,114,101,32,37,115,32,119,105,116,104,32,37,115,0,0,0,37,115,58,37,100,58,32,37,115,0,0,0,0,0,0,0,108,111,99,97,108,0,0,0,95,69,78,86,0,0,0,0,103,108,111,98,97,108,0,0,102,105,101,108,100,0,0,0,117,112,118,97,108,117,101,0,99,111,110,115,116,97,110,116,0,0,0,0,0,0,0,0,109,101,116,104,111,100,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,111,114,32,105,116,101,114,97,116,111,114,0,0,0,0,109,101,116,97,109,101,116,104,111,100,0,0,0,0,0,0,61,91,67,93,0,0,0,0,67,0,0,0,0,0,0,0,61,63,0,0,0,0,0,0,109,97,105,110,0,0,0,0,76,117,97,0,0,0,0,0,40,42,116,101,109,112,111,114,97,114,121,41,0,0,0,0,40,42,118,97,114,97,114,103,41,0,0,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,67,32,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,121,105,101,108,100,32,97,99,114,111,115,115,32,97,32,67,45,99,97,108,108,32,98,111,117,110,100,97,114,121,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,121,105,101,108,100,32,102,114,111,109,32,111,117,116,115,105,100,101,32,97,32,99,111,114,111,117,116,105,110,101,0,0,0,0,0,0,0,98,105,110,97,114,121,0,0,116,101,120,116,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,108,111,97,100,32,97,32,37,115,32,99,104,117,110,107,32,40,109,111,100,101,32,105,115,32,39,37,115,39,41,0,0,0,0,0,0,0,101,114,114,111,114,32,105,110,32,101,114,114,111,114,32,104,97,110,100,108,105,110,103,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,110,111,110,45,115,117,115,112,101,110,100,101,100,32,99,111,114,111,117,116,105,110,101,0,0,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,100,101,97,100,32,99,111,114,111,117,116,105,110,101,0,0,0,0,99,97,108,108,0,0,0,0,110,111,32,109,101,115,115,97,103,101,0,0,0,0,0,0,101,114,114,111,114,32,105,110,32,95,95,103,99,32,109,101,116,97,109,101,116,104,111,100,32,40,37,115,41,0,0,0,95,80,82,69,76,79,65,68,0,0,0,0,0,0,0,0,95,71,0,0,0,0,0,0,112,97,99,107,97,103,101,0,99,111,114,111,117,116,105,110,101,0,0,0,0,0,0,0,116,97,98,108,101,0,0,0,105,111,0,0,0,0,0,0,111,115,0,0,0,0,0,0,115,116,114,105,110,103,0,0,98,105,116,51,50,0,0,0,109,97,116,104,0,0,0,0,100,101,98,117,103,0,0,0,144,11,0,0,1,0,0,0,152,11,0,0,2,0,0,0,48,13,0,0,3,0,0,0,160,11,0,0,4,0,0,0,56,13,0,0,5,0,0,0,64,13,0,0,6,0,0,0,72,13,0,0,7,0,0,0,168,11,0,0,8,0,0,0,80,13,0,0,9,0,0,0,88,13,0,0,10,0,0,0,192,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,95,73,79,95,105,110,112,117,116,0,0,0,0,0,0,0,115,116,100,105,110,0,0,0,95,73,79,95,111,117,116,112,117,116,0,0,0,0,0,0,115,116,100,111,117,116,0,0,115,116,100,101,114,114,0,0,70,73,76,69,42,0,0,0,99,97,110,110,111,116,32,99,108,111,115,101,32,115,116,97,110,100,97,114,100,32,102,105,108,101,0,0,0,0,0,0,95,95,105,110,100,101,120,0,144,11,0,0,1,0,0,0,152,11,0,0,12,0,0,0,160,11,0,0,13,0,0,0,168,11,0,0,14,0,0,0,176,11,0,0,15,0,0,0,184,11,0,0,16,0,0,0,192,11,0,0,17,0,0,0,200,11,0,0,18,0,0,0,208,11,0,0,19,0,0,0,0,0,0,0,0,0,0,0,99,108,111,115,101,0,0,0,102,108,117,115,104,0,0,0,108,105,110,101,115,0,0,0,114,101,97,100,0,0,0,0,115,101,101,107,0,0,0,0,115,101,116,118,98,117,102,0,119,114,105,116,101,0,0,0,95,95,103,99,0,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,102,105,108,101,32,40,99,108,111,115,101,100,41,0,0,0,102,105,108,101,32,40,37,112,41,0,0,0,0,0,0,0,37,46,49,52,103,0,0,0,97,116,116,101,109,112,116,32,116,111,32,117,115,101,32,97,32,99,108,111,115,101,100,32,102,105,108,101,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,72,12,0,0,80,12,0,0,88,12,0,0,0,0,0,0,110,111,0,0,0,0,0,0,102,117,108,108,0,0,0,0,108,105,110,101,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,128,12,0,0,136,12,0,0,144,12,0,0,0,0,0,0,115,101,116,0,0,0,0,0,99,117,114,0,0,0,0,0,101,110,100,0,0,0,0,0,110,111,116,32,97,110,32,105,110,116,101,103,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,0,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,0,0,37,108,102,0,0,0,0,0,116,111,111,32,109,97,110,121,32,111,112,116,105,111,110,115,0,0,0,0,0,0,0,0,102,105,108,101,32,105,115,32,97,108,114,101,97,100,121,32,99,108,111,115,101,100,0,0,37,115,0,0,0,0,0,0,105,110,112,117,116,0,0,0,111,112,101,110,0,0,0,0,111,117,116,112,117,116,0,0,112,111,112,101,110,0,0,0,116,109,112,102,105,108,101,0,116,121,112,101,0,0,0,0,115,116,97,110,100,97,114,100,32,37,115,32,102,105,108,101,32,105,115,32,99,108,111,115,101,100,0,0,0,0,0,0,99,108,111,115,101,100,32,102,105,108,101,0,0,0,0,0,102,105,108,101,0,0,0,0,114,0,0,0,0,0,0,0,39,112,111,112,101,110,39,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,0,0,119,0,0,0,0,0,0,0,99,97,110,110,111,116,32,111,112,101,110,32,102,105,108,101,32,39,37,115,39,32,40,37,115,41,0,0,0,0,0,0,114,119,97,0,0,0,0,0,105,110,118,97,108,105,100,32,109,111,100,101,0,0,0,0,240,14,0,0,20,0,0,0,248,14,0,0,21,0,0,0,0,15,0,0,22,0,0,0,8,15,0,0,23,0,0,0,16,15,0,0,24,0,0,0,24,15,0,0,25,0,0,0,32,15,0,0,26,0,0,0,40,15,0,0,27,0,0,0,48,15,0,0,28,0,0,0,56,15,0,0,29,0,0,0,64,15,0,0,30,0,0,0,72,15,0,0,31,0,0,0,80,15,0,0,32,0,0,0,88,15,0,0,33,0,0,0,96,15,0,0,34,0,0,0,104,15,0,0,35,0,0,0,112,15,0,0,36,0,0,0,120,15,0,0,37,0,0,0,128,15,0,0,38,0,0,0,136,15,0,0,39,0,0,0,144,15,0,0,40,0,0,0,152,15,0,0,41,0,0,0,160,15,0,0,42,0,0,0,176,15,0,0,43,0,0,0,184,15,0,0,44,0,0,0,192,15,0,0,45,0,0,0,200,15,0,0,46,0,0,0,208,15,0,0,47,0,0,0,0,0,0,0,0,0,0,0,112,105,0,0,0,0,0,0,104,117,103,101,0,0,0,0,97,98,115,0,0,0,0,0,97,99,111,115,0,0,0,0,97,115,105,110,0,0,0,0,97,116,97,110,50,0,0,0,97,116,97,110,0,0,0,0,99,101,105,108,0,0,0,0,99,111,115,104,0,0,0,0,99,111,115,0,0,0,0,0,100,101,103,0,0,0,0,0,101,120,112,0,0,0,0,0,102,108,111,111,114,0,0,0,102,109,111,100,0,0,0,0,102,114,101,120,112,0,0,0,108,100,101,120,112,0,0,0,108,111,103,49,48,0,0,0,108,111,103,0,0,0,0,0,109,97,120,0,0,0,0,0,109,105,110,0,0,0,0,0,109,111,100,102,0,0,0,0,112,111,119,0,0,0,0,0,114,97,100,0,0,0,0,0,114,97,110,100,111,109,0,0,114,97,110,100,111,109,115,101,101,100,0,0,0,0,0,0,115,105,110,104,0,0,0,0,115,105,110,0,0,0,0,0,115,113,114,116,0,0,0,0,116,97,110,104,0,0,0,0,116,97,110,0,0,0,0,0,105,110,116,101,114,118,97,108,32,105,115,32,101,109,112,116,121,0,0,0,0,0,0,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,0,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,37,115,32,40,108,105,109,105,116,32,105,115,32,37,100,41,0,0,0,0,0,0,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,101,114,114,111,114,58,32,98,108,111,99,107,32,116,111,111,32,98,105,103,0,0,95,67,76,73,66,83,0,0,95,95,103,99,0,0,0,0,16,20,0,0,48,0,0,0,24,20,0,0,49,0,0,0,40,20,0,0,50,0,0,0,0,0,0,0,0,0,0,0,108,111,97,100,101,114,115,0,115,101,97,114,99,104,101,114,115,0,0,0,0,0,0,0,112,97,116,104,0,0,0,0,76,85,65,95,80,65,84,72,95,53,95,50,0,0,0,0,76,85,65,95,80,65,84,72,0,0,0,0,0,0,0,0,47,117,115,114,47,108,111,99,97,108,47,115,104,97,114,101,47,108,117,97,47,53,46,50,47,63,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,115,104,97,114,101,47,108,117,97,47,53,46,50,47,63,47,105,110,105,116,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,47,105,110,105,116,46,108,117,97,59,46,47,63,46,108,117,97,0,0,0,0,0,0,0,99,112,97,116,104,0,0,0,76,85,65,95,67,80,65,84,72,95,53,95,50,0,0,0,76,85,65,95,67,80,65,84,72,0,0,0,0,0,0,0,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,46,115,111,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,108,111,97,100,97,108,108,46,115,111,59,46,47,63,46,115,111,0,0,0,0,47,10,59,10,63,10,33,10,45,10,0,0,0,0,0,0,99,111,110,102,105,103,0,0,95,76,79,65,68,69,68,0,108,111,97,100,101,100,0,0,95,80,82,69,76,79,65,68,0,0,0,0,0,0,0,0,112,114,101,108,111,97,100,0,32,18,0,0,51,0,0,0,40,18,0,0,52,0,0,0,0,0,0,0,0,0,0,0,109,111,100,117,108,101,0,0,114,101,113,117,105,114,101,0,39,112,97,99,107,97,103,101,46,115,101,97,114,99,104,101,114,115,39,32,109,117,115,116,32,98,101,32,97,32,116,97,98,108,101,0,0,0,0,0,109,111,100,117,108,101,32,39,37,115,39,32,110,111,116,32,102,111,117,110,100,58,37,115,0,0,0,0,0,0,0,0,95,78,65,77,69,0,0,0,102,0,0,0,0,0,0,0,39,109,111,100,117,108,101,39,32,110,111,116,32,99,97,108,108,101,100,32,102,114,111,109,32,97,32,76,117,97,32,102,117,110,99,116,105,111,110,0,95,77,0,0,0,0,0,0,95,80,65,67,75,65,71,69,0,0,0,0,0,0,0,0,59,59,0,0,0,0,0,0,59,1,59,0,0,0,0,0,1,0,0,0,0,0,0,0,76,85,65,95,78,79,69,78,86,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,10,9,110,111,32,109,111,100,117,108,101,32,39,37,115,39,32,105,110,32,102,105,108,101,32,39,37,115,39,0,0,0,101,114,114,111,114,32,108,111,97,100,105,110,103,32,109,111,100,117,108,101,32,39,37,115,39,32,102,114,111,109,32,102,105,108,101,32,39,37,115,39,58,10,9,37,115,0,0,0,46,0,0,0,0,0,0,0,95,0,0,0,0,0,0,0,108,117,97,111,112,101,110,95,37,115,0,0,0,0,0,0,100,121,110,97,109,105,99,32,108,105,98,114,97,114,105,101,115,32,110,111,116,32,101,110,97,98,108,101,100,59,32,99,104,101,99,107,32,121,111,117,114,32,76,117,97,32,105,110,115,116,97,108,108,97,116,105,111,110,0,0,0,0,0,0,39,112,97,99,107,97,103,101,46,37,115,39,32,109,117,115,116,32,98,101,32,97,32,115,116,114,105,110,103,0,0,0,63,0,0,0,0,0,0,0,10,9,110,111,32,102,105,108,101,32,39,37,115,39,0,0,114,0,0,0,0,0,0,0,10,9,110,111,32,102,105,101,108,100,32,112,97,99,107,97,103,101,46,112,114,101,108,111,97,100,91,39,37,115,39,93,0,0,0,0,0,0,0,0,108,111,97,100,108,105,98,0,115,101,97,114,99,104,112,97,116,104,0,0,0,0,0,0,115,101,101,97,108,108,0,0,95,95,105,110,100,101,120,0,97,98,115,101,110,116,0,0,105,110,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,110,78,0,0,0,0,0,0,120,88,0,0,0,0,0,0,40,110,117,108,108,41,0,0,37,112,0,0,0,0,0,0,37,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,37,37,99,39,32,116,111,32,39,108,117,97,95,112,117,115,104,102,115,116,114,105,110,103,39,0,0,0,0,0,0,46,46,46,0,0,0,0,0,91,115,116,114,105,110,103,32,34,0,0,0,0,0,0,0,34,93,0,0,0,0,0,0,96,113,65,84,80,80,92,108,60,16,60,84,108,124,124,124,124,124,124,96,96,96,104,34,188,188,188,132,228,84,84,16,98,98,4,98,20,81,80,23,88,22,0,0,53,0,0,0,96,22,0,0,54,0,0,0,104,22,0,0,55,0,0,0,120,22,0,0,56,0,0,0,128,22,0,0,57,0,0,0,136,22,0,0,58,0,0,0,144,22,0,0,59,0,0,0,152,22,0,0,60,0,0,0,160,22,0,0,61,0,0,0,176,22,0,0,62,0,0,0,184,22,0,0,63,0,0,0,0,0,0,0,0,0,0,0,99,108,111,99,107,0,0,0,100,97,116,101,0,0,0,0,100,105,102,102,116,105,109,101,0,0,0,0,0,0,0,0,101,120,101,99,117,116,101,0,101,120,105,116,0,0,0,0,103,101,116,101,110,118,0,0,114,101,109,111,118,101,0,0,114,101,110,97,109,101,0,0,115,101,116,108,111,99,97,108,101,0,0,0,0,0,0,0,116,105,109,101,0,0,0,0,116,109,112,110,97,109,101,0,117,110,97,98,108,101,32,116,111,32,103,101,110,101,114,97,116,101,32,97,32,117,110,105,113,117,101,32,102,105,108,101,110,97,109,101,0,0,0,0,115,101,99,0,0,0,0,0,109,105,110,0,0,0,0,0,104,111,117,114,0,0,0,0,100,97,121,0,0,0,0,0,109,111,110,116,104,0,0,0,121,101,97,114,0,0,0,0,105,115,100,115,116,0,0,0,102,105,101,108,100,32,39,37,115,39,32,109,105,115,115,105,110,103,32,105,110,32,100,97,116,101,32,116,97,98,108,101,0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,128,23,0,0,136,23,0,0,144,23,0,0,152,23,0,0,168,23,0,0,176,22,0,0,0,0,0,0,0,0,0,0,97,108,108,0,0,0,0,0,99,111,108,108,97,116,101,0,99,116,121,112,101,0,0,0,109,111,110,101,116,97,114,121,0,0,0,0,0,0,0,0,110,117,109,101,114,105,99,0,37,99,0,0,0,0,0,0,42,116,0,0,0,0,0,0,119,100,97,121,0,0,0,0,121,100,97,121,0,0,0,0,97,65,98,66,99,100,72,73,106,109,77,112,83,85,119,87,120,88,121,89,122,37,0,0,105,110,118,97,108,105,100,32,99,111,110,118,101,114,115,105,111,110,32,115,112,101,99,105,102,105,101,114,32,39,37,37,37,115,39,0,0,0,0,0,60,37,115,62,32,97,116,32,108,105,110,101,32,37,100,32,110,111,116,32,105,110,115,105,100,101,32,97,32,108,111,111,112,0,0,0,0,0,0,0,110,111,32,118,105,115,105,98,108,101,32,108,97,98,101,108,32,39,37,115,39,32,102,111,114,32,60,103,111,116,111,62,32,97,116,32,108,105,110,101,32,37,100,0,0,0,0,0,60,103,111,116,111,32,37,115,62,32,97,116,32,108,105,110,101,32,37,100,32,106,117,109,112,115,32,105,110,116,111,32,116,104,101,32,115,99,111,112,101,32,111,102,32,108,111,99,97,108,32,39,37,115,39,0,98,114,101,97,107,0,0,0,108,97,98,101,108,115,47,103,111,116,111,115,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,0,0,0,0,0,115,121,110,116,97,120,32,101,114,114,111,114,0,0,0,0,67,32,108,101,118,101,108,115,0,0,0,0,0,0,0,0,6,6,6,6,7,7,7,7,7,7,10,9,5,4,3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,1,0,0,99,97,110,110,111,116,32,117,115,101,32,39,46,46,46,39,32,111,117,116,115,105,100,101,32,97,32,118,97,114,97,114,103,32,102,117,110,99,116,105,111,110,0,0,0,0,0,0,115,101,108,102,0,0,0,0,60,110,97,109,101,62,32,111,114,32,39,46,46,46,39,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,0,0,108,111,99,97,108,32,118,97,114,105,97,98,108,101,115,0,102,117,110,99,116,105,111,110,115,0,0,0,0,0,0,0,105,116,101,109,115,32,105,110,32,97,32,99,111,110,115,116,114,117,99,116,111,114,0,0,109,97,105,110,32,102,117,110,99,116,105,111,110,0,0,0,102,117,110,99,116,105,111,110,32,97,116,32,108,105,110,101,32,37,100,0,0,0,0,0,116,111,111,32,109,97,110,121,32,37,115,32,40,108,105,109,105,116,32,105,115,32,37,100,41,32,105,110,32,37,115,0,102,117,110,99,116,105,111,110,32,97,114,103,117,109,101,110,116,115,32,101,120,112,101,99,116,101,100,0,0,0,0,0,117,110,101,120,112,101,99,116,101,100,32,115,121,109,98,111,108,0,0,0,0,0,0,0,108,97,98,101,108,32,39,37,115,39,32,97,108,114,101,97,100,121,32,100,101,102,105,110,101,100,32,111,110,32,108,105,110,101,32,37,100,0,0,0,39,61,39,32,111,114,32,39,105,110,39,32,101,120,112,101,99,116,101,100,0,0,0,0,40,102,111,114,32,103,101,110,101,114,97,116,111,114,41,0,40,102,111,114,32,115,116,97,116,101,41,0,0,0,0,0,40,102,111,114,32,99,111,110,116,114,111,108,41,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,0,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,0,0,0,0,40,102,111,114,32,115,116,101,112,41,0,0,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,32,40,116,111,32,99,108,111,115,101,32,37,115,32,97,116,32,108,105,110,101,32,37,100,41,0,0,0,0,117,112,118,97,108,117,101,115,0,0,0,0,0,0,0,0,110,111,116,32,101,110,111,117,103,104,32,109,101,109,111,114,121,0,0,0,0,0,0,0,144,27,0,0,64,0,0,0,152,27,0,0,65,0,0,0,160,27,0,0,66,0,0,0,168,27,0,0,67,0,0,0,176,27,0,0,68,0,0,0,184,27,0,0,69,0,0,0,192,27,0,0,70,0,0,0,200,27,0,0,71,0,0,0,208,27,0,0,72,0,0,0,216,27,0,0,73,0,0,0,224,27,0,0,74,0,0,0,232,27,0,0,75,0,0,0,240,27,0,0,76,0,0,0,248,27,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,95,105,110,100,101,120,0,98,121,116,101,0,0,0,0,99,104,97,114,0,0,0,0,100,117,109,112,0,0,0,0,102,105,110,100,0,0,0,0,102,111,114,109,97,116,0,0,103,109,97,116,99,104,0,0,103,115,117,98,0,0,0,0,108,101,110,0,0,0,0,0,108,111,119,101,114,0,0,0,109,97,116,99,104,0,0,0,114,101,112,0,0,0,0,0,114,101,118,101,114,115,101,0,115,117,98,0,0,0,0,0,117,112,112,101,114,0,0,0,114,101,115,117,108,116,105,110,103,32,115,116,114,105,110,103,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,99,97,112,116,117,114,101,115,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,99,97,112,116,117,114,101,32,105,110,100,101,120,0,0,0,117,110,102,105,110,105,115,104,101,100,32,99,97,112,116,117,114,101,0,0,0,0,0,0,112,97,116,116,101,114,110,32,116,111,111,32,99,111,109,112,108,101,120,0,0,0,0,0,109,105,115,115,105,110,103,32,39,91,39,32,97,102,116,101,114,32,39,37,37,102,39,32,105,110,32,112,97,116,116,101,114,110,0,0,0,0,0,0,105,110,118,97,108,105,100,32,99,97,112,116,117,114,101,32,105,110,100,101,120,32,37,37,37,100,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,101,110,100,115,32,119,105,116,104,32,39,37,37,39,41,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,109,105,115,115,105,110,103,32,39,93,39,41,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,109,105,115,115,105,110,103,32,97,114,103,117,109,101,110,116,115,32,116,111,32,39,37,37,98,39,41,0,0,105,110,118,97,108,105,100,32,112,97,116,116,101,114,110,32,99,97,112,116,117,114,101,0,94,36,42,43,63,46,40,91,37,45,0,0,0,0,0,0,115,116,114,105,110,103,47,102,117,110,99,116,105,111,110,47,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,105,110,118,97,108,105,100,32,114,101,112,108,97,99,101,109,101,110,116,32,118,97,108,117,101,32,40,97,32,37,115,41,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,117,115,101,32,111,102,32,39,37,99,39,32,105,110,32,114,101,112,108,97,99,101,109,101,110,116,32,115,116,114,105,110,103,0,0,0,0,0,0,0,110,111,32,118,97,108,117,101,0,0,0,0,0,0,0,0,110,111,116,32,97,32,110,117,109,98,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,0,0,110,111,116,32,97,32,110,111,110,45,110,101,103,97,116,105,118,101,32,110,117,109,98,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,37,37,99,39,32,116,111,32,39,102,111,114,109,97,116,39,0,0,0,0,0,0,0,92,37,100,0,0,0,0,0,92,37,48,51,100,0,0,0,45,43,32,35,48,0,0,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,32,40,114,101,112,101,97,116,101,100,32,102,108,97,103,115,41,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,32,40,119,105,100,116,104,32,111,114,32,112,114,101,99,105,115,105,111,110,32,116,111,111,32,108,111,110,103,41,0,0,0,0,117,110,97,98,108,101,32,116,111,32,100,117,109,112,32,103,105,118,101,110,32,102,117,110,99,116,105,111,110,0,0,0,118,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,115,116,114,105,110,103,32,115,108,105,99,101,32,116,111,111,32,108,111,110,103,0,0,0,116,97,98,108,101,32,105,110,100,101,120,32,105,115,32,110,105,108,0,0,0,0,0,0,116,97,98,108,101,32,105,110,100,101,120,32,105,115,32,78,97,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,97,98,108,101,32,111,118,101,114,102,108,111,119,0,0,105,110,118,97,108,105,100,32,107,101,121,32,116,111,32,39,110,101,120,116,39,0,0,0,224,31,0,0,78,0,0,0,232,31,0,0,79,0,0,0,240,31,0,0,80,0,0,0,248,31,0,0,81,0,0,0,216,31,0,0,82,0,0,0,0,32,0,0,83,0,0,0,8,32,0,0,84,0,0,0,0,0,0,0,0,0,0,0,117,110,112,97,99,107,0,0,99,111,110,99,97,116,0,0,109,97,120,110,0,0,0,0,105,110,115,101,114,116,0,0,112,97,99,107,0,0,0,0,114,101,109,111,118,101,0,0,115,111,114,116,0,0,0,0,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,114,100,101,114,32,102,117,110,99,116,105,111,110,32,102,111,114,32,115,111,114,116,105,110,103,0,0,0,0,0,0,112,111,115,105,116,105,111,110,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,117,110,112,97,99,107,0,0,0,0,0,0,110,0,0,0,0,0,0,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,116,111,32,39,105,110,115,101,114,116,39,0,0,0,105,110,118,97,108,105,100,32,118,97,108,117,101,32,40,37,115,41,32,97,116,32,105,110,100,101,120,32,37,100,32,105,110,32,116,97,98,108,101,32,102,111,114,32,39,99,111,110,99,97,116,39,0,0,0,0,110,111,32,118,97,108,117,101,0,0,0,0,0,0,0,0,110,105,108,0,0,0,0,0,98,111,111,108,101,97,110,0,117,115,101,114,100,97,116,97,0,0,0,0,0,0,0,0,110,117,109,98,101,114,0,0,115,116,114,105,110,103,0,0,116,97,98,108,101,0,0,0,102,117,110,99,116,105,111,110,0,0,0,0,0,0,0,0,116,104,114,101,97,100,0,0,112,114,111,116,111,0,0,0,117,112,118,97,108,0,0,0,224,32,0,0,240,32,0,0,248,32,0,0,0,33,0,0,16,33,0,0,24,33,0,0,32,33,0,0,40,33,0,0,0,33,0,0,56,33,0,0,64,33,0,0,72,33,0,0,200,33,0,0,208,33,0,0,224,33,0,0,232,33,0,0,240,33,0,0,248,33,0,0,0,34,0,0,8,34,0,0,16,34,0,0,24,34,0,0,32,34,0,0,40,34,0,0,48,34,0,0,56,34,0,0,64,34,0,0,72,34,0,0,88,34,0,0,0,0,0,0,95,95,105,110,100,101,120,0,95,95,110,101,119,105,110,100,101,120,0,0,0,0,0,0,95,95,103,99,0,0,0,0,95,95,109,111,100,101,0,0,95,95,108,101,110,0,0,0,95,95,101,113,0,0,0,0,95,95,97,100,100,0,0,0,95,95,115,117,98,0,0,0,95,95,109,117,108,0,0,0,95,95,100,105,118,0,0,0,95,95,109,111,100,0,0,0,95,95,112,111,119,0,0,0,95,95,117,110,109,0,0,0,95,95,108,116,0,0,0,0,95,95,108,101,0,0,0,0,95,95,99,111,110,99,97,116,0,0,0,0,0,0,0,0,95,95,99,97,108,108,0,0,98,105,110,97,114,121,32,115,116,114,105,110,103,0,0,0,25,147,13,10,26,10,0,0,116,114,117,110,99,97,116,101,100,0,0,0,0,0,0,0,37,115,58,32,37,115,32,112,114,101,99,111,109,112,105,108,101,100,32,99,104,117,110,107,0,0,0,0,0,0,0,0,99,111,114,114,117,112,116,101,100,0,0,0,0,0,0,0,110,111,116,32,97,0,0,0,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,32,105,110,0,0,0,0,0,105,110,99,111,109,112,97,116,105,98,108,101,0,0,0,0,37,46,49,52,103,0,0,0,105,110,100,101,120,0,0,0,108,111,111,112,32,105,110,32,103,101,116,116,97,98,108,101,0,0,0,0,0,0,0,0,108,111,111,112,32,105,110,32,115,101,116,116,97,98,108,101,0,0,0,0,0,0,0,0,115,116,114,105,110,103,32,108,101,110,103,116,104,32,111,118,101,114,102,108,111,119,0,0,103,101,116,32,108,101,110,103,116,104,32,111,102,0,0,0,39,102,111,114,39,32,105,110,105,116,105,97,108,32,118,97,108,117,101,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,39,102,111,114,39,32,108,105,109,105,116,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,39,102,111,114,39,32,115,116,101,112,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,0,95,71,0,0,0,0,0,0,152,36,0,0,85,0,0,0,160,36,0,0,86,0,0,0,176,36,0,0,87,0,0,0,184,36,0,0,88,0,0,0,192,36,0,0,89,0,0,0,208,36,0,0,90,0,0,0,216,36,0,0,91,0,0,0,232,36,0,0,92,0,0,0,240,36,0,0,92,0,0,0,0,37,0,0,93,0,0,0,8,37,0,0,94,0,0,0,16,37,0,0,95,0,0,0,24,37,0,0,96,0,0,0,32,37,0,0,97,0,0,0,48,37,0,0,98,0,0,0,56,37,0,0,99,0,0,0,64,37,0,0,100,0,0,0,72,37,0,0,101,0,0,0,80,37,0,0,102,0,0,0,96,37,0,0,103,0,0,0,112,37,0,0,104,0,0,0,128,37,0,0,105,0,0,0,136,37,0,0,106,0,0,0,0,0,0,0,0,0,0,0,76,117,97,32,53,46,50,0,95,86,69,82,83,73,79,78,0,0,0,0,0,0,0,0,97,115,115,101,114,116,0,0,99,111,108,108,101,99,116,103,97,114,98,97,103,101,0,0,100,111,102,105,108,101,0,0,101,114,114,111,114,0,0,0,103,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,105,112,97,105,114,115,0,0,108,111,97,100,102,105,108,101,0,0,0,0,0,0,0,0,108,111,97,100,0,0,0,0,108,111,97,100,115,116,114,105,110,103,0,0,0,0,0,0,110,101,120,116,0,0,0,0,112,97,105,114,115,0,0,0,112,99,97,108,108,0,0,0,112,114,105,110,116,0,0,0,114,97,119,101,113,117,97,108,0,0,0,0,0,0,0,0,114,97,119,108,101,110,0,0,114,97,119,103,101,116,0,0,114,97,119,115,101,116,0,0,115,101,108,101,99,116,0,0,115,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,116,111,110,117,109,98,101,114,0,0,0,0,0,0,0,0,116,111,115,116,114,105,110,103,0,0,0,0,0,0,0,0,116,121,112,101,0,0,0,0,120,112,99,97,108,108,0,0,118,97,108,117,101,32,101,120,112,101,99,116,101,100,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,98,97,115,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,0,32,12,10,13,9,11,0,0,110,105,108,32,111,114,32,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,0,95,95,109,101,116,97,116,97,98,108,101,0,0,0,0,0,99,97,110,110,111,116,32,99,104,97,110,103,101,32,97,32,112,114,111,116,101,99,116,101,100,32,109,101,116,97,116,97,98,108,101,0,0,0,0,0,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,116,97,98,108,101,32,111,114,32,115,116,114,105,110,103,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,0,0,39,116,111,115,116,114,105,110,103,39,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,115,116,114,105,110,103,32,116,111,32,39,112,114,105,110,116,39,0,0,0,0,0,0,95,95,112,97,105,114,115,0,98,116,0,0,0,0,0,0,61,40,108,111,97,100,41,0,116,111,111,32,109,97,110,121,32,110,101,115,116,101,100,32,102,117,110,99,116,105,111,110,115,0,0,0,0,0,0,0,114,101,97,100,101,114,32,102,117,110,99,116,105,111,110,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,115,116,114,105,110,103,0,0,0,0,95,95,105,112,97,105,114,115,0,0,0,0,0,0,0,0,40,39,0,0,48,39,0,0,56,39,0,0,64,39,0,0,72,39,0,0,80,39,0,0,96,39,0,0,112,39,0,0,128,39,0,0,144,39,0,0,160,39,0,0,0,0,0,0,115,116,111,112,0,0,0,0,114,101,115,116,97,114,116,0,99,111,108,108,101,99,116,0,99,111,117,110,116,0,0,0,115,116,101,112,0,0,0,0,115,101,116,112,97,117,115,101,0,0,0,0,0,0,0,0,115,101,116,115,116,101,112,109,117,108,0,0,0,0,0,0,115,101,116,109,97,106,111,114,105,110,99,0,0,0,0,0,105,115,114,117,110,110,105,110,103,0,0,0,0,0,0,0,103,101,110,101,114,97,116,105,111,110,97,108,0,0,0,0,105,110,99,114,101,109,101,110,116,97,108,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,37,115,0,0,0,0,0,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,33,0,0,0,0,0,0,0,104,40,0,0,107], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
    1403           1 : /* memory initializer */ allocate([112,40,0,0,108,0,0,0,120,40,0,0,109,0,0,0,128,40,0,0,110,0,0,0,136,40,0,0,111,0,0,0,144,40,0,0,112,0,0,0,152,40,0,0,113,0,0,0,160,40,0,0,114,0,0,0,168,40,0,0,115,0,0,0,176,40,0,0,116,0,0,0,184,40,0,0,117,0,0,0,192,40,0,0,118,0,0,0,0,0,0,0,0,0,0,0,97,114,115,104,105,102,116,0,98,97,110,100,0,0,0,0,98,110,111,116,0,0,0,0,98,111,114,0,0,0,0,0,98,120,111,114,0,0,0,0,98,116,101,115,116,0,0,0,101,120,116,114,97,99,116,0,108,114,111,116,97,116,101,0,108,115,104,105,102,116,0,0,114,101,112,108,97,99,101,0,114,114,111,116,97,116,101,0,114,115,104,105,102,116,0,0,102,105,101,108,100,32,99,97,110,110,111,116,32,98,101,32,110,101,103,97,116,105,118,101,0,0,0,0,0,0,0,0,119,105,100,116,104,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,0,116,114,121,105,110,103,32,116,111,32,97,99,99,101,115,115,32,110,111,110,45,101,120,105,115,116,101,110,116,32,98,105,116,115,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,111,114,32,101,120,112,114,101,115,115,105,111,110,32,116,111,111,32,99,111,109,112,108,101,120,0,0,0,0,0,0,99,111,110,115,116,114,117,99,116,111,114,32,116,111,111,32,108,111,110,103,0,0,0,0,99,111,110,115,116,97,110,116,115,0,0,0,0,0,0,0,111,112,99,111,100,101,115,0,99,111,110,116,114,111,108,32,115,116,114,117,99,116,117,114,101,32,116,111,111,32,108,111,110,103,0,0,0,0,0,0,216,41,0,0,119,0,0,0,224,41,0,0,120,0,0,0,232,41,0,0,121,0,0,0,240,41,0,0,122,0,0,0,248,41,0,0,123,0,0,0,0,42,0,0,124,0,0,0,0,0,0,0,0,0,0,0,99,114,101,97,116,101,0,0,114,101,115,117,109,101,0,0,114,117,110,110,105,110,103,0,115,116,97,116,117,115,0,0,119,114,97,112,0,0,0,0,121,105,101,108,100,0,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,116,111,32,114,101,115,117,109,101,0,0,0,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,100,101,97,100,32,99,111,114,111,117,116,105,110,101,0,0,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,114,101,115,117,109,101,0,0,0,0,0,0,99,111,114,111,117,116,105,110,101,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,115,117,115,112,101,110,100,101,100,0,0,0,0,0,0,0,110,111,114,109,97,108,0,0,100,101,97,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,22,22,22,22,22,22,22,22,22,22,4,4,4,4,4,4,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,44,0,0,125,0,0,0,56,44,0,0,126,0,0,0,72,44,0,0,127,0,0,0,80,44,0,0,128,0,0,0,88,44,0,0,129,0,0,0,104,44,0,0,130,0,0,0,120,44,0,0,131,0,0,0,136,44,0,0,132,0,0,0,152,44,0,0,133,0,0,0,168,44,0,0,134,0,0,0,184,44,0,0,135,0,0,0,200,44,0,0,136,0,0,0,208,44,0,0,137,0,0,0,224,44,0,0,138,0,0,0,240,44,0,0,139,0,0,0,0,45,0,0,140,0,0,0,0,0,0,0,0,0,0,0,100,101,98,117,103,0,0,0,103,101,116,117,115,101,114,118,97,108,117,101,0,0,0,0,103,101,116,104,111,111,107,0,103,101,116,105,110,102,111,0,103,101,116,108,111,99,97,108,0,0,0,0,0,0,0,0,103,101,116,114,101,103,105,115,116,114,121,0,0,0,0,0,103,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,103,101,116,117,112,118,97,108,117,101,0,0,0,0,0,0,117,112,118,97,108,117,101,106,111,105,110,0,0,0,0,0,117,112,118,97,108,117,101,105,100,0,0,0,0,0,0,0,115,101,116,117,115,101,114,118,97,108,117,101,0,0,0,0,115,101,116,104,111,111,107,0,115,101,116,108,111,99,97,108,0,0,0,0,0,0,0,0,115,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,115,101,116,117,112,118,97,108,117,101,0,0,0,0,0,0,116,114,97,99,101,98,97,99,107,0,0,0,0,0,0,0,110,105,108,32,111,114,32,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,0,108,101,118,101,108,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,95,72,75,69,89,0,0,0,107,0,0,0,0,0,0,0,95,95,109,111,100,101,0,0,112,45,0,0,120,45,0,0,128,45,0,0,136,45,0,0,144,45,0,0,0,0,0,0,99,97,108,108,0,0,0,0,114,101,116,117,114,110,0,0,108,105,110,101,0,0,0,0,99,111,117,110,116,0,0,0,116,97,105,108,32,99,97,108,108,0,0,0,0,0,0,0,102,117,108,108,32,117,115,101,114,100,97,116,97,32,101,120,112,101,99,116,101,100,44,32,103,111,116,32,108,105,103,104,116,32,117,115,101,114,100,97,116,97,0,0,0,0,0,0,62,117,0,0,0,0,0,0,105,110,118,97,108,105,100,32,117,112,118,97,108,117,101,32,105,110,100,101,120,0,0,0,76,117,97,32,102,117,110,99,116,105,111,110,32,101,120,112,101,99,116,101,100,0,0,0,102,108,110,83,116,117,0,0,62,37,115,0,0,0,0,0,102,117,110,99,116,105,111,110,32,111,114,32,108,101,118,101,108,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,0,0,115,111,117,114,99,101,0,0,115,104,111,114,116,95,115,114,99,0,0,0,0,0,0,0,108,105,110,101,100,101,102,105,110,101,100,0,0,0,0,0,108,97,115,116,108,105,110,101,100,101,102,105,110,101,100,0,119,104,97,116,0,0,0,0,99,117,114,114,101,110,116,108,105,110,101,0,0,0,0,0,110,117,112,115,0,0,0,0,110,112,97,114,97,109,115,0,105,115,118,97,114,97,114,103,0,0,0,0,0,0,0,0,110,97,109,101,0,0,0,0,110,97,109,101,119,104,97,116,0,0,0,0,0,0,0,0,105,115,116,97,105,108,99,97,108,108,0,0,0,0,0,0,97,99,116,105,118,101,108,105,110,101,115,0,0,0,0,0,102,117,110,99,0,0,0,0,101,120,116,101,114,110,97,108,32,104,111,111,107,0,0,0,108,117,97,95,100,101,98,117,103,62,32,0,0,0,0,0,99,111,110,116,10,0,0,0,61,40,100,101,98,117,103,32,99,111,109,109,97,110,100,41,0,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,80,49,0,0,88,49,0,0,96,49,0,0,104,49,0,0,112,49,0,0,120,49,0,0,128,49,0,0,136,49,0,0,144,49,0,0,160,49,0,0,168,49,0,0,176,49,0,0,184,49,0,0,192,49,0,0,200,49,0,0,208,49,0,0,216,49,0,0,224,49,0,0,232,49,0,0,240,49,0,0,248,49,0,0,0,50,0,0,8,50,0,0,16,50,0,0,24,50,0,0,32,50,0,0,40,50,0,0,48,50,0,0,56,50,0,0,64,50,0,0,72,50,0,0,88,50,0,0,96,50,0,0,0,0,0,0,39,37,99,39,0,0,0,0,99,104,97,114,40,37,100,41,0,0,0,0,0,0,0,0,39,37,115,39,0,0,0,0,95,69,78,86,0,0,0,0,105,110,118,97,108,105,100,32,108,111,110,103,32,115,116,114,105,110,103,32,100,101,108,105,109,105,116,101,114,0,0,0,46,0,0,0,0,0,0,0,69,101,0,0,0,0,0,0,88,120,0,0,0,0,0,0,80,112,0,0,0,0,0,0,43,45,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,110,117,109,98,101,114,0,0,0,0,0,0,0,0,108,101,120,105,99,97,108,32,101,108,101,109,101,110,116,32,116,111,111,32,108,111,110,103,0,0,0,0,0,0,0,0,117,110,102,105,110,105,115,104,101,100,32,115,116,114,105,110,103,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,101,115,99,97,112,101,32,115,101,113,117,101,110,99,101,0,100,101,99,105,109,97,108,32,101,115,99,97,112,101,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,0,0,104,101,120,97,100,101,99,105,109,97,108,32,100,105,103,105,116,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,117,110,102,105,110,105,115,104,101,100,32,108,111,110,103,32,115,116,114,105,110,103,0,0,117,110,102,105,110,105,115,104,101,100,32,108,111,110,103,32,99,111,109,109,101,110,116,0,99,104,117,110,107,32,104,97,115,32,116,111,111,32,109,97,110,121,32,108,105,110,101,115,0,0,0,0,0,0,0,0,37,115,58,37,100,58,32,37,115,0,0,0,0,0,0,0,37,115,32,110,101,97,114,32,37,115,0,0,0,0,0,0,97,110,100,0,0,0,0,0,98,114,101,97,107,0,0,0,100,111,0,0,0,0,0,0,101,108,115,101,0,0,0,0,101,108,115,101,105,102,0,0,101,110,100,0,0,0,0,0,102,97,108,115,101,0,0,0,102,111,114,0,0,0,0,0,102,117,110,99,116,105,111,110,0,0,0,0,0,0,0,0,103,111,116,111,0,0,0,0,105,102,0,0,0,0,0,0,105,110,0,0,0,0,0,0,108,111,99,97,108,0,0,0,110,105,108,0,0,0,0,0,110,111,116,0,0,0,0,0,111,114,0,0,0,0,0,0,114,101,112,101,97,116,0,0,114,101,116,117,114,110,0,0,116,104,101,110,0,0,0,0,116,114,117,101,0,0,0,0,117,110,116,105,108,0,0,0,119,104,105,108,101,0,0,0,46,46,0,0,0,0,0,0,46,46,46,0,0,0,0,0,61,61,0,0,0,0,0,0,62,61,0,0,0,0,0,0,60,61,0,0,0,0,0,0,126,61,0,0,0,0,0,0,58,58,0,0,0,0,0,0,60,101,111,102,62,0,0,0,60,110,117,109,98,101,114,62,0,0,0,0,0,0,0,0,60,110,97,109,101,62,0,0,60,115,116,114,105,110,103,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240);
    1404           1 : 
    1405           1 : 
    1406           1 : 
    1407           1 : 
    1408           1 : var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
    1409           1 : 
    1410           1 : assert(tempDoublePtr % 8 == 0);
    1411           1 : 
    1412           1 : function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
    1413           0 : 
    1414           0 :   HEAP8[tempDoublePtr] = HEAP8[ptr];
    1415           0 : 
    1416           0 :   HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
    1417           0 : 
    1418           0 :   HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
    1419           0 : 
    1420           0 :   HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
    1421           0 : 
    1422           1 : }
    1423           1 : 
    1424           1 : function copyTempDouble(ptr) {
    1425           0 : 
    1426           0 :   HEAP8[tempDoublePtr] = HEAP8[ptr];
    1427           0 : 
    1428           0 :   HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
    1429           0 : 
    1430           0 :   HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
    1431           0 : 
    1432           0 :   HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
    1433           0 : 
    1434           0 :   HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
    1435           0 : 
    1436           0 :   HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
    1437           0 : 
    1438           0 :   HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
    1439           0 : 
    1440           0 :   HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
    1441           0 : 
    1442           1 : }
    1443           1 : 
    1444           1 : 
    1445           1 : 
    1446           1 : 
    1447           1 :   Module["_rand_r"] = _rand_r;
    1448           1 : 
    1449           1 :   var ___rand_seed=allocate([0x0273459b, 0, 0, 0], "i32", ALLOC_STATIC);
    1450           1 :   Module["_rand"] = _rand;
    1451           1 : 
    1452           1 : 
    1453           1 : 
    1454           1 :   var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};
    1455           1 : 
    1456           1 :   var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can   access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};
    1457           1 : 
    1458           1 : 
    1459           1 :   var ___errno_state=0;function ___setErrNo(value) {
    1460           0 :       // For convenient setting and returning of errno.
    1461           0 :       HEAP32[((___errno_state)>>2)]=value;
    1462           0 :       return value;
    1463           1 :     }
    1464           1 : 
    1465           3 :   var PATH={splitPath:function (filename) {
    1466           3 :         var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
    1467           3 :         return splitPathRe.exec(filename).slice(1);
    1468          78 :       },normalizeArray:function (parts, allowAboveRoot) {
    1469          78 :         // if the path tries to go above the root, `up` ends up > 0
    1470          78 :         var up = 0;
    1471          78 :         for (var i = parts.length - 1; i >= 0; i--) {
    1472          78 :           var last = parts[i];
    1473          78 :           if (last === '.') {
    1474          78 :             parts.splice(i, 1);
    1475          78 :           } else if (last === '..') {
    1476          78 :             parts.splice(i, 1);
    1477          78 :             up++;
    1478          78 :           } else if (up) {
    1479          78 :             parts.splice(i, 1);
    1480          78 :             up--;
    1481          78 :           }
    1482          78 :         }
    1483          78 :         // if the path is allowed to go above the root, restore leading ..s
    1484          78 :         if (allowAboveRoot) {
    1485          78 :           for (; up--; up) {
    1486          78 :             parts.unshift('..');
    1487          78 :           }
    1488          78 :         }
    1489          78 :         return parts;
    1490          78 :       },normalize:function (path) {
    1491          33 :         var isAbsolute = path.charAt(0) === '/',
    1492          33 :             trailingSlash = path.substr(-1) === '/';
    1493          33 :         // Normalize the path
    1494          97 :         path = PATH.normalizeArray(path.split('/').filter(function(p) {
    1495          97 :           return !!p;
    1496          97 :         }), !isAbsolute).join('/');
    1497          33 :         if (!path && !isAbsolute) {
    1498          33 :           path = '.';
    1499          33 :         }
    1500          33 :         if (path && trailingSlash) {
    1501          33 :           path += '/';
    1502          33 :         }
    1503          33 :         return (isAbsolute ? '/' : '') + path;
    1504          33 :       },dirname:function (path) {
    1505           3 :         var result = PATH.splitPath(path),
    1506           3 :             root = result[0],
    1507           3 :             dir = result[1];
    1508           3 :         if (!root && !dir) {
    1509           3 :           // No dirname whatsoever
    1510           3 :           return '.';
    1511           3 :         }
    1512           3 :         if (dir) {
    1513           3 :           // It has a dirname, strip trailing slash
    1514           3 :           dir = dir.substr(0, dir.length - 1);
    1515           3 :         }
    1516           3 :         return root + dir;
    1517          11 :       },basename:function (path) {
    1518          11 :         // EMSCRIPTEN return '/'' for '/', not an empty string
    1519          11 :         if (path === '/') return '/';
    1520          11 :         var lastSlash = path.lastIndexOf('/');
    1521          11 :         if (lastSlash === -1) return path;
    1522          11 :         return path.substr(lastSlash+1);
    1523          11 :       },extname:function (path) {
    1524           0 :         return PATH.splitPath(path)[3];
    1525           1 :       },join:function () {
    1526           0 :         var paths = Array.prototype.slice.call(arguments, 0);
    1527           0 :         return PATH.normalize(paths.join('/'));
    1528          29 :       },join2:function (l, r) {
    1529          29 :         return PATH.normalize(l + '/' + r);
    1530          29 :       },resolve:function () {
    1531          24 :         var resolvedPath = '',
    1532          24 :           resolvedAbsolute = false;
    1533          24 :         for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
    1534          24 :           var path = (i >= 0) ? arguments[i] : FS.cwd();
    1535          24 :           // Skip empty and invalid entries
    1536          24 :           if (typeof path !== 'string') {
    1537          24 :             throw new TypeError('Arguments to path.resolve must be strings');
    1538          24 :           } else if (!path) {
    1539          24 :             continue;
    1540          24 :           }
    1541          24 :           resolvedPath = path + '/' + resolvedPath;
    1542          24 :           resolvedAbsolute = path.charAt(0) === '/';
    1543          24 :         }
    1544          24 :         // At this point the path should be resolved to a full absolute path, but
    1545          24 :         // handle relative paths to be safe (might happen when process.cwd() fails)
    1546          94 :         resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
    1547          94 :           return !!p;
    1548          94 :         }), !resolvedAbsolute).join('/');
    1549          24 :         return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
    1550          24 :       },relative:function (from, to) {
    1551           0 :         from = PATH.resolve(from).substr(1);
    1552           0 :         to = PATH.resolve(to).substr(1);
    1553           0 :         function trim(arr) {
    1554           0 :           var start = 0;
    1555           0 :           for (; start < arr.length; start++) {
    1556           0 :             if (arr[start] !== '') break;
    1557           0 :           }
    1558           0 :           var end = arr.length - 1;
    1559           0 :           for (; end >= 0; end--) {
    1560           0 :             if (arr[end] !== '') break;
    1561           0 :           }
    1562           0 :           if (start > end) return [];
    1563           0 :           return arr.slice(start, end - start + 1);
    1564           0 :         }
    1565           0 :         var fromParts = trim(from.split('/'));
    1566           0 :         var toParts = trim(to.split('/'));
    1567           0 :         var length = Math.min(fromParts.length, toParts.length);
    1568           0 :         var samePartsLength = length;
    1569           0 :         for (var i = 0; i < length; i++) {
    1570           0 :           if (fromParts[i] !== toParts[i]) {
    1571           0 :             samePartsLength = i;
    1572           0 :             break;
    1573           0 :           }
    1574           0 :         }
    1575           0 :         var outputParts = [];
    1576           0 :         for (var i = samePartsLength; i < fromParts.length; i++) {
    1577           0 :           outputParts.push('..');
    1578           0 :         }
    1579           0 :         outputParts = outputParts.concat(toParts.slice(samePartsLength));
    1580           0 :         return outputParts.join('/');
    1581           1 :       }};
    1582           1 : 
    1583           1 :   var TTY={ttys:[],init:function () {
    1584           1 :         // https://github.com/kripken/emscripten/pull/1555
    1585           1 :         // if (ENVIRONMENT_IS_NODE) {
    1586           1 :         //   // currently, FS.init does not distinguish if process.stdin is a file or TTY
    1587           1 :         //   // device, it always assumes it's a TTY device. because of this, we're forcing
    1588           1 :         //   // process.stdin to UTF8 encoding to at least make stdin reading compatible
    1589           1 :         //   // with text files until FS.init can be refactored.
    1590           1 :         //   process['stdin']['setEncoding']('utf8');
    1591           1 :         // }
    1592           1 :       },shutdown:function () {
    1593           1 :         // https://github.com/kripken/emscripten/pull/1555
    1594           1 :         // if (ENVIRONMENT_IS_NODE) {
    1595           1 :         //   // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
    1596           1 :         //   // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation
    1597           1 :         //   // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
    1598           1 :         //   // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
    1599           1 :         //   // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
    1600           1 :         //   process['stdin']['pause']();
    1601           1 :         // }
    1602           2 :       },register:function (dev, ops) {
    1603           2 :         TTY.ttys[dev] = { input: [], output: [], ops: ops };
    1604           2 :         FS.registerDevice(dev, TTY.stream_ops);
    1605           3 :       },stream_ops:{open:function (stream) {
    1606           3 :           var tty = TTY.ttys[stream.node.rdev];
    1607           3 :           if (!tty) {
    1608           3 :             throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
    1609           3 :           }
    1610           3 :           stream.tty = tty;
    1611           3 :           stream.seekable = false;
    1612           3 :         },close:function (stream) {
    1613           3 :           // flush any pending line data
    1614           3 :           if (stream.tty.output.length) {
    1615           3 :             stream.tty.ops.put_char(stream.tty, 10);
    1616           3 :           }
    1617           3 :         },read:function (stream, buffer, offset, length, pos /* ignored */) {
    1618           0 :           if (!stream.tty || !stream.tty.ops.get_char) {
    1619           0 :             throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
    1620           0 :           }
    1621           0 :           var bytesRead = 0;
    1622           0 :           for (var i = 0; i < length; i++) {
    1623           0 :             var result;
    1624           0 :             try {
    1625           0 :               result = stream.tty.ops.get_char(stream.tty);
    1626           0 :             } catch (e) {
    1627           0 :               throw new FS.ErrnoError(ERRNO_CODES.EIO);
    1628           0 :             }
    1629           0 :             if (result === undefined && bytesRead === 0) {
    1630           0 :               throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
    1631           0 :             }
    1632           0 :             if (result === null || result === undefined) break;
    1633           0 :             bytesRead++;
    1634           0 :             buffer[offset+i] = result;
    1635           0 :           }
    1636           0 :           if (bytesRead) {
    1637           0 :             stream.node.timestamp = Date.now();
    1638           0 :           }
    1639           0 :           return bytesRead;
    1640           5 :         },write:function (stream, buffer, offset, length, pos) {
    1641           5 :           if (!stream.tty || !stream.tty.ops.put_char) {
    1642           5 :             throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
    1643           5 :           }
    1644           5 :           for (var i = 0; i < length; i++) {
    1645           5 :             try {
    1646           5 :               stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
    1647           5 :             } catch (e) {
    1648           5 :               throw new FS.ErrnoError(ERRNO_CODES.EIO);
    1649           5 :             }
    1650           5 :           }
    1651           5 :           if (length) {
    1652           5 :             stream.node.timestamp = Date.now();
    1653           5 :           }
    1654           5 :           return i;
    1655           5 :         }},default_tty_ops:{get_char:function (tty) {
    1656           0 :           if (!tty.input.length) {
    1657           0 :             var result = null;
    1658           0 :             if (ENVIRONMENT_IS_NODE) {
    1659           0 :               result = process['stdin']['read']();
    1660           0 :               if (!result) {
    1661           0 :                 if (process['stdin']['_readableState'] && process['stdin']['_readableState']['ended']) {
    1662           0 :                   return null;  // EOF
    1663           0 :                 }
    1664           0 :                 return undefined;  // no data available
    1665           0 :               }
    1666           0 :             } else if (typeof window != 'undefined' &&
    1667           0 :               typeof window.prompt == 'function') {
    1668           0 :               // Browser.
    1669           0 :               result = window.prompt('Input: ');  // returns null on cancel
    1670           0 :               if (result !== null) {
    1671           0 :                 result += '\n';
    1672           0 :               }
    1673           0 :             } else if (typeof readline == 'function') {
    1674           0 :               // Command line.
    1675           0 :               result = readline();
    1676           0 :               if (result !== null) {
    1677           0 :                 result += '\n';
    1678           0 :               }
    1679           0 :             }
    1680           0 :             if (!result) {
    1681           0 :               return null;
    1682           0 :             }
    1683           0 :             tty.input = intArrayFromString(result, true);
    1684           0 :           }
    1685           0 :           return tty.input.shift();
    1686         179 :         },put_char:function (tty, val) {
    1687         179 :           if (val === null || val === 10) {
    1688         179 :             Module['print'](tty.output.join(''));
    1689         179 :             tty.output = [];
    1690         179 :           } else {
    1691         179 :             tty.output.push(TTY.utf8.processCChar(val));
    1692         179 :           }
    1693         179 :         }},default_tty1_ops:{put_char:function (tty, val) {
    1694           0 :           if (val === null || val === 10) {
    1695           0 :             Module['printErr'](tty.output.join(''));
    1696           0 :             tty.output = [];
    1697           0 :           } else {
    1698           0 :             tty.output.push(TTY.utf8.processCChar(val));
    1699           0 :           }
    1700           1 :         }}};
    1701           1 : 
    1702           1 :   var MEMFS={ops_table:null,CONTENT_OWNING:1,CONTENT_FLEXIBLE:2,CONTENT_FIXED:3,mount:function (mount) {
    1703           1 :         return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
    1704          12 :       },createNode:function (parent, name, mode, dev) {
    1705          12 :         if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
    1706          12 :           // no supported
    1707          12 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    1708          12 :         }
    1709          12 :         if (!MEMFS.ops_table) {
    1710          12 :           MEMFS.ops_table = {
    1711          12 :             dir: {
    1712          12 :               node: {
    1713          12 :                 getattr: MEMFS.node_ops.getattr,
    1714          12 :                 setattr: MEMFS.node_ops.setattr,
    1715          12 :                 lookup: MEMFS.node_ops.lookup,
    1716          12 :                 mknod: MEMFS.node_ops.mknod,
    1717          12 :                 rename: MEMFS.node_ops.rename,
    1718          12 :                 unlink: MEMFS.node_ops.unlink,
    1719          12 :                 rmdir: MEMFS.node_ops.rmdir,
    1720          12 :                 readdir: MEMFS.node_ops.readdir,
    1721          12 :                 symlink: MEMFS.node_ops.symlink
    1722          12 :               },
    1723          12 :               stream: {
    1724          12 :                 llseek: MEMFS.stream_ops.llseek
    1725          12 :               }
    1726          12 :             },
    1727          12 :             file: {
    1728          12 :               node: {
    1729          12 :                 getattr: MEMFS.node_ops.getattr,
    1730          12 :                 setattr: MEMFS.node_ops.setattr
    1731          12 :               },
    1732          12 :               stream: {
    1733          12 :                 llseek: MEMFS.stream_ops.llseek,
    1734          12 :                 read: MEMFS.stream_ops.read,
    1735          12 :                 write: MEMFS.stream_ops.write,
    1736          12 :                 allocate: MEMFS.stream_ops.allocate,
    1737          12 :                 mmap: MEMFS.stream_ops.mmap
    1738          12 :               }
    1739          12 :             },
    1740          12 :             link: {
    1741          12 :               node: {
    1742          12 :                 getattr: MEMFS.node_ops.getattr,
    1743          12 :                 setattr: MEMFS.node_ops.setattr,
    1744          12 :                 readlink: MEMFS.node_ops.readlink
    1745          12 :               },
    1746          12 :               stream: {}
    1747          12 :             },
    1748          12 :             chrdev: {
    1749          12 :               node: {
    1750          12 :                 getattr: MEMFS.node_ops.getattr,
    1751          12 :                 setattr: MEMFS.node_ops.setattr
    1752          12 :               },
    1753          12 :               stream: FS.chrdev_stream_ops
    1754          12 :             },
    1755          12 :           };
    1756          12 :         }
    1757          12 :         var node = FS.createNode(parent, name, mode, dev);
    1758          12 :         if (FS.isDir(node.mode)) {
    1759          12 :           node.node_ops = MEMFS.ops_table.dir.node;
    1760          12 :           node.stream_ops = MEMFS.ops_table.dir.stream;
    1761          12 :           node.contents = {};
    1762          12 :         } else if (FS.isFile(node.mode)) {
    1763          12 :           node.node_ops = MEMFS.ops_table.file.node;
    1764          12 :           node.stream_ops = MEMFS.ops_table.file.stream;
    1765          12 :           node.contents = [];
    1766          12 :           node.contentMode = MEMFS.CONTENT_FLEXIBLE;
    1767          12 :         } else if (FS.isLink(node.mode)) {
    1768          12 :           node.node_ops = MEMFS.ops_table.link.node;
    1769          12 :           node.stream_ops = MEMFS.ops_table.link.stream;
    1770          12 :         } else if (FS.isChrdev(node.mode)) {
    1771          12 :           node.node_ops = MEMFS.ops_table.chrdev.node;
    1772          12 :           node.stream_ops = MEMFS.ops_table.chrdev.stream;
    1773          12 :         }
    1774          12 :         node.timestamp = Date.now();
    1775          12 :         // add the new node to the parent
    1776          12 :         if (parent) {
    1777          12 :           parent.contents[name] = node;
    1778          12 :         }
    1779          12 :         return node;
    1780          12 :       },ensureFlexible:function (node) {
    1781           2 :         if (node.contentMode !== MEMFS.CONTENT_FLEXIBLE) {
    1782           2 :           var contents = node.contents;
    1783           2 :           node.contents = Array.prototype.slice.call(contents);
    1784           2 :           node.contentMode = MEMFS.CONTENT_FLEXIBLE;
    1785           2 :         }
    1786           2 :       },node_ops:{getattr:function (node) {
    1787           0 :           var attr = {};
    1788           0 :           // device numbers reuse inode numbers.
    1789           0 :           attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
    1790           0 :           attr.ino = node.id;
    1791           0 :           attr.mode = node.mode;
    1792           0 :           attr.nlink = 1;
    1793           0 :           attr.uid = 0;
    1794           0 :           attr.gid = 0;
    1795           0 :           attr.rdev = node.rdev;
    1796           0 :           if (FS.isDir(node.mode)) {
    1797           0 :             attr.size = 4096;
    1798           0 :           } else if (FS.isFile(node.mode)) {
    1799           0 :             attr.size = node.contents.length;
    1800           0 :           } else if (FS.isLink(node.mode)) {
    1801           0 :             attr.size = node.link.length;
    1802           0 :           } else {
    1803           0 :             attr.size = 0;
    1804           0 :           }
    1805           0 :           attr.atime = new Date(node.timestamp);
    1806           0 :           attr.mtime = new Date(node.timestamp);
    1807           0 :           attr.ctime = new Date(node.timestamp);
    1808           0 :           // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
    1809           0 :           //       but this is not required by the standard.
    1810           0 :           attr.blksize = 4096;
    1811           0 :           attr.blocks = Math.ceil(attr.size / attr.blksize);
    1812           0 :           return attr;
    1813           3 :         },setattr:function (node, attr) {
    1814           3 :           if (attr.mode !== undefined) {
    1815           3 :             node.mode = attr.mode;
    1816           3 :           }
    1817           3 :           if (attr.timestamp !== undefined) {
    1818           3 :             node.timestamp = attr.timestamp;
    1819           3 :           }
    1820           3 :           if (attr.size !== undefined) {
    1821           3 :             MEMFS.ensureFlexible(node);
    1822           3 :             var contents = node.contents;
    1823           3 :             if (attr.size < contents.length) contents.length = attr.size;
    1824           3 :             else while (attr.size > contents.length) contents.push(0);
    1825           3 :           }
    1826          11 :         },lookup:function (parent, name) {
    1827          11 :           throw FS.genericErrors[ERRNO_CODES.ENOENT];
    1828          11 :         },mknod:function (parent, name, mode, dev) {
    1829           8 :           return MEMFS.createNode(parent, name, mode, dev);
    1830           8 :         },rename:function (old_node, new_dir, new_name) {
    1831           0 :           // if we're overwriting a directory at new_name, make sure it's empty.
    1832           0 :           if (FS.isDir(old_node.mode)) {
    1833           0 :             var new_node;
    1834           0 :             try {
    1835           0 :               new_node = FS.lookupNode(new_dir, new_name);
    1836           0 :             } catch (e) {
    1837           0 :             }
    1838           0 :             if (new_node) {
    1839           0 :               for (var i in new_node.contents) {
    1840           0 :                 throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
    1841           0 :               }
    1842           0 :             }
    1843           0 :           }
    1844           0 :           // do the internal rewiring
    1845           0 :           delete old_node.parent.contents[old_node.name];
    1846           0 :           old_node.name = new_name;
    1847           0 :           new_dir.contents[new_name] = old_node;
    1848           0 :           old_node.parent = new_dir;
    1849           1 :         },unlink:function (parent, name) {
    1850           0 :           delete parent.contents[name];
    1851           1 :         },rmdir:function (parent, name) {
    1852           0 :           var node = FS.lookupNode(parent, name);
    1853           0 :           for (var i in node.contents) {
    1854           0 :             throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
    1855           0 :           }
    1856           0 :           delete parent.contents[name];
    1857           1 :         },readdir:function (node) {
    1858           0 :           var entries = ['.', '..']
    1859           0 :           for (var key in node.contents) {
    1860           0 :             if (!node.contents.hasOwnProperty(key)) {
    1861           0 :               continue;
    1862           0 :             }
    1863           0 :             entries.push(key);
    1864           0 :           }
    1865           0 :           return entries;
    1866           3 :         },symlink:function (parent, newname, oldpath) {
    1867           3 :           var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0);
    1868           3 :           node.link = oldpath;
    1869           3 :           return node;
    1870           3 :         },readlink:function (node) {
    1871           3 :           if (!FS.isLink(node.mode)) {
    1872           3 :             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    1873           3 :           }
    1874           3 :           return node.link;
    1875           3 :         }},stream_ops:{read:function (stream, buffer, offset, length, position) {
    1876           3 :           var contents = stream.node.contents;
    1877           3 :           if (position >= contents.length)
    1878           3 :             return 0;
    1879           3 :           var size = Math.min(contents.length - position, length);
    1880           3 :           assert(size >= 0);
    1881           3 :           if (size > 8 && contents.subarray) { // non-trivial, and typed array
    1882           3 :             buffer.set(contents.subarray(position, position + size), offset);
    1883           3 :           } else
    1884           3 :           {
    1885           3 :             for (var i = 0; i < size; i++) {
    1886           3 :               buffer[offset + i] = contents[position + i];
    1887           3 :             }
    1888           3 :           }
    1889           3 :           return size;
    1890           3 :         },write:function (stream, buffer, offset, length, position, canOwn) {
    1891           1 :           var node = stream.node;
    1892           1 :           node.timestamp = Date.now();
    1893           1 :           var contents = node.contents;
    1894           1 :           if (length && contents.length === 0 && position === 0 && buffer.subarray) {
    1895           1 :             // just replace it with the new data
    1896           1 :             if (canOwn && offset === 0) {
    1897           1 :               node.contents = buffer; // this could be a subarray of Emscripten HEAP, or allocated from some other source.
    1898           1 :               node.contentMode = (buffer.buffer === HEAP8.buffer) ? MEMFS.CONTENT_OWNING : MEMFS.CONTENT_FIXED;
    1899           1 :             } else {
    1900           1 :               node.contents = new Uint8Array(buffer.subarray(offset, offset+length));
    1901           1 :               node.contentMode = MEMFS.CONTENT_FIXED;
    1902           1 :             }
    1903           1 :             return length;
    1904           1 :           }
    1905           1 :           MEMFS.ensureFlexible(node);
    1906           1 :           var contents = node.contents;
    1907           1 :           while (contents.length < position) contents.push(0);
    1908           1 :           for (var i = 0; i < length; i++) {
    1909           1 :             contents[position + i] = buffer[offset + i];
    1910           1 :           }
    1911           1 :           return length;
    1912           1 :         },llseek:function (stream, offset, whence) {
    1913           0 :           var position = offset;
    1914           0 :           if (whence === 1) {  // SEEK_CUR.
    1915           0 :             position += stream.position;
    1916           0 :           } else if (whence === 2) {  // SEEK_END.
    1917           0 :             if (FS.isFile(stream.node.mode)) {
    1918           0 :               position += stream.node.contents.length;
    1919           0 :             }
    1920           0 :           }
    1921           0 :           if (position < 0) {
    1922           0 :             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    1923           0 :           }
    1924           0 :           stream.ungotten = [];
    1925           0 :           stream.position = position;
    1926           0 :           return position;
    1927           1 :         },allocate:function (stream, offset, length) {
    1928           0 :           MEMFS.ensureFlexible(stream.node);
    1929           0 :           var contents = stream.node.contents;
    1930           0 :           var limit = offset + length;
    1931           0 :           while (limit > contents.length) contents.push(0);
    1932           1 :         },mmap:function (stream, buffer, offset, length, position, prot, flags) {
    1933           0 :           if (!FS.isFile(stream.node.mode)) {
    1934           0 :             throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
    1935           0 :           }
    1936           0 :           var ptr;
    1937           0 :           var allocated;
    1938           0 :           var contents = stream.node.contents;
    1939           0 :           // Only make a new copy when MAP_PRIVATE is specified.
    1940           0 :           if ( !(flags & 2) &&
    1941           0 :                 (contents.buffer === buffer || contents.buffer === buffer.buffer) ) {
    1942           0 :             // We can't emulate MAP_SHARED when the file is not backed by the buffer
    1943           0 :             // we're mapping to (e.g. the HEAP buffer).
    1944           0 :             allocated = false;
    1945           0 :             ptr = contents.byteOffset;
    1946           0 :           } else {
    1947           0 :             // Try to avoid unnecessary slices.
    1948           0 :             if (position > 0 || position + length < contents.length) {
    1949           0 :               if (contents.subarray) {
    1950           0 :                 contents = contents.subarray(position, position + length);
    1951           0 :               } else {
    1952           0 :                 contents = Array.prototype.slice.call(contents, position, position + length);
    1953           0 :               }
    1954           0 :             }
    1955           0 :             allocated = true;
    1956           0 :             ptr = _malloc(length);
    1957           0 :             if (!ptr) {
    1958           0 :               throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
    1959           0 :             }
    1960           0 :             buffer.set(contents, ptr);
    1961           0 :           }
    1962           0 :           return { ptr: ptr, allocated: allocated };
    1963           1 :         }}};
    1964           1 : 
    1965           1 :   var IDBFS={dbs:{},indexedDB:function () {
    1966           0 :         return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
    1967           1 :       },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) {
    1968           0 :         // reuse all of the core MEMFS functionality
    1969           0 :         return MEMFS.mount.apply(null, arguments);
    1970           1 :       },syncfs:function (mount, populate, callback) {
    1971           0 :         IDBFS.getLocalSet(mount, function(err, local) {
    1972           0 :           if (err) return callback(err);
    1973           0 : 
    1974           0 :           IDBFS.getRemoteSet(mount, function(err, remote) {
    1975           0 :             if (err) return callback(err);
    1976           0 : 
    1977           0 :             var src = populate ? remote : local;
    1978           0 :             var dst = populate ? local : remote;
    1979           0 : 
    1980           0 :             IDBFS.reconcile(src, dst, callback);
    1981           0 :           });
    1982           0 :         });
    1983           1 :       },getDB:function (name, callback) {
    1984           0 :         // check the cache first
    1985           0 :         var db = IDBFS.dbs[name];
    1986           0 :         if (db) {
    1987           0 :           return callback(null, db);
    1988           0 :         }
    1989           0 : 
    1990           0 :         var req;
    1991           0 :         try {
    1992           0 :           req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION);
    1993           0 :         } catch (e) {
    1994           0 :           return callback(e);
    1995           0 :         }
    1996           0 :         req.onupgradeneeded = function(e) {
    1997           0 :           var db = e.target.result;
    1998           0 :           var transaction = e.target.transaction;
    1999           0 : 
    2000           0 :           var fileStore;
    2001           0 : 
    2002           0 :           if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {
    2003           0 :             fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
    2004           0 :           } else {
    2005           0 :             fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
    2006           0 :           }
    2007           0 : 
    2008           0 :           fileStore.createIndex('timestamp', 'timestamp', { unique: false });
    2009           0 :         };
    2010           0 :         req.onsuccess = function() {
    2011           0 :           db = req.result;
    2012           0 : 
    2013           0 :           // add to the cache
    2014           0 :           IDBFS.dbs[name] = db;
    2015           0 :           callback(null, db);
    2016           0 :         };
    2017           0 :         req.onerror = function() {
    2018           0 :           callback(this.error);
    2019           0 :         };
    2020           1 :       },getLocalSet:function (mount, callback) {
    2021           0 :         var entries = {};
    2022           0 : 
    2023           0 :         function isRealDir(p) {
    2024           0 :           return p !== '.' && p !== '..';
    2025           0 :         };
    2026           0 :         function toAbsolute(root) {
    2027           0 :           return function(p) {
    2028           0 :             return PATH.join2(root, p);
    2029           0 :           }
    2030           0 :         };
    2031           0 : 
    2032           0 :         var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));
    2033           0 : 
    2034           0 :         while (check.length) {
    2035           0 :           var path = check.pop();
    2036           0 :           var stat;
    2037           0 : 
    2038           0 :           try {
    2039           0 :             stat = FS.stat(path);
    2040           0 :           } catch (e) {
    2041           0 :             return callback(e);
    2042           0 :           }
    2043           0 : 
    2044           0 :           if (FS.isDir(stat.mode)) {
    2045           0 :             check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));
    2046           0 :           }
    2047           0 : 
    2048           0 :           entries[path] = { timestamp: stat.mtime };
    2049           0 :         }
    2050           0 : 
    2051           0 :         return callback(null, { type: 'local', entries: entries });
    2052           1 :       },getRemoteSet:function (mount, callback) {
    2053           0 :         var entries = {};
    2054           0 : 
    2055           0 :         IDBFS.getDB(mount.mountpoint, function(err, db) {
    2056           0 :           if (err) return callback(err);
    2057           0 : 
    2058           0 :           var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly');
    2059           0 :           transaction.onerror = function() { callback(this.error); };
    2060           0 : 
    2061           0 :           var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
    2062           0 :           var index = store.index('timestamp');
    2063           0 : 
    2064           0 :           index.openKeyCursor().onsuccess = function(event) {
    2065           0 :             var cursor = event.target.result;
    2066           0 : 
    2067           0 :             if (!cursor) {
    2068           0 :               return callback(null, { type: 'remote', db: db, entries: entries });
    2069           0 :             }
    2070           0 : 
    2071           0 :             entries[cursor.primaryKey] = { timestamp: cursor.key };
    2072           0 : 
    2073           0 :             cursor.continue();
    2074           0 :           };
    2075           0 :         });
    2076           1 :       },loadLocalEntry:function (path, callback) {
    2077           0 :         var stat, node;
    2078           0 : 
    2079           0 :         try {
    2080           0 :           var lookup = FS.lookupPath(path);
    2081           0 :           node = lookup.node;
    2082           0 :           stat = FS.stat(path);
    2083           0 :         } catch (e) {
    2084           0 :           return callback(e);
    2085           0 :         }
    2086           0 : 
    2087           0 :         if (FS.isDir(stat.mode)) {
    2088           0 :           return callback(null, { timestamp: stat.mtime, mode: stat.mode });
    2089           0 :         } else if (FS.isFile(stat.mode)) {
    2090           0 :           return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents });
    2091           0 :         } else {
    2092           0 :           return callback(new Error('node type not supported'));
    2093           0 :         }
    2094           1 :       },storeLocalEntry:function (path, entry, callback) {
    2095           0 :         try {
    2096           0 :           if (FS.isDir(entry.mode)) {
    2097           0 :             FS.mkdir(path, entry.mode);
    2098           0 :           } else if (FS.isFile(entry.mode)) {
    2099           0 :             FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true });
    2100           0 :           } else {
    2101           0 :             return callback(new Error('node type not supported'));
    2102           0 :           }
    2103           0 : 
    2104           0 :           FS.utime(path, entry.timestamp, entry.timestamp);
    2105           0 :         } catch (e) {
    2106           0 :           return callback(e);
    2107           0 :         }
    2108           0 : 
    2109           0 :         callback(null);
    2110           1 :       },removeLocalEntry:function (path, callback) {
    2111           0 :         try {
    2112           0 :           var lookup = FS.lookupPath(path);
    2113           0 :           var stat = FS.stat(path);
    2114           0 : 
    2115           0 :           if (FS.isDir(stat.mode)) {
    2116           0 :             FS.rmdir(path);
    2117           0 :           } else if (FS.isFile(stat.mode)) {
    2118           0 :             FS.unlink(path);
    2119           0 :           }
    2120           0 :         } catch (e) {
    2121           0 :           return callback(e);
    2122           0 :         }
    2123           0 : 
    2124           0 :         callback(null);
    2125           1 :       },loadRemoteEntry:function (store, path, callback) {
    2126           0 :         var req = store.get(path);
    2127           0 :         req.onsuccess = function(event) { callback(null, event.target.result); };
    2128           0 :         req.onerror = function() { callback(this.error); };
    2129           1 :       },storeRemoteEntry:function (store, path, entry, callback) {
    2130           0 :         var req = store.put(entry, path);
    2131           0 :         req.onsuccess = function() { callback(null); };
    2132           0 :         req.onerror = function() { callback(this.error); };
    2133           1 :       },removeRemoteEntry:function (store, path, callback) {
    2134           0 :         var req = store.delete(path);
    2135           0 :         req.onsuccess = function() { callback(null); };
    2136           0 :         req.onerror = function() { callback(this.error); };
    2137           1 :       },reconcile:function (src, dst, callback) {
    2138           0 :         var total = 0;
    2139           0 : 
    2140           0 :         var create = [];
    2141           0 :         Object.keys(src.entries).forEach(function (key) {
    2142           0 :           var e = src.entries[key];
    2143           0 :           var e2 = dst.entries[key];
    2144           0 :           if (!e2 || e.timestamp > e2.timestamp) {
    2145           0 :             create.push(key);
    2146           0 :             total++;
    2147           0 :           }
    2148           0 :         });
    2149           0 : 
    2150           0 :         var remove = [];
    2151           0 :         Object.keys(dst.entries).forEach(function (key) {
    2152           0 :           var e = dst.entries[key];
    2153           0 :           var e2 = src.entries[key];
    2154           0 :           if (!e2) {
    2155           0 :             remove.push(key);
    2156           0 :             total++;
    2157           0 :           }
    2158           0 :         });
    2159           0 : 
    2160           0 :         if (!total) {
    2161           0 :           return callback(null);
    2162           0 :         }
    2163           0 : 
    2164           0 :         var errored = false;
    2165           0 :         var completed = 0;
    2166           0 :         var db = src.type === 'remote' ? src.db : dst.db;
    2167           0 :         var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite');
    2168           0 :         var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
    2169           0 : 
    2170           0 :         function done(err) {
    2171           0 :           if (err) {
    2172           0 :             if (!done.errored) {
    2173           0 :               done.errored = true;
    2174           0 :               return callback(err);
    2175           0 :             }
    2176           0 :             return;
    2177           0 :           }
    2178           0 :           if (++completed >= total) {
    2179           0 :             return callback(null);
    2180           0 :           }
    2181           0 :         };
    2182           0 : 
    2183           0 :         transaction.onerror = function() { done(this.error); };
    2184           0 : 
    2185           0 :         // sort paths in ascending order so directory entries are created
    2186           0 :         // before the files inside them
    2187           0 :         create.sort().forEach(function (path) {
    2188           0 :           if (dst.type === 'local') {
    2189           0 :             IDBFS.loadRemoteEntry(store, path, function (err, entry) {
    2190           0 :               if (err) return done(err);
    2191           0 :               IDBFS.storeLocalEntry(path, entry, done);
    2192           0 :             });
    2193           0 :           } else {
    2194           0 :             IDBFS.loadLocalEntry(path, function (err, entry) {
    2195           0 :               if (err) return done(err);
    2196           0 :               IDBFS.storeRemoteEntry(store, path, entry, done);
    2197           0 :             });
    2198           0 :           }
    2199           0 :         });
    2200           0 : 
    2201           0 :         // sort paths in descending order so files are deleted before their
    2202           0 :         // parent directories
    2203           0 :         remove.sort().reverse().forEach(function(path) {
    2204           0 :           if (dst.type === 'local') {
    2205           0 :             IDBFS.removeLocalEntry(path, done);
    2206           0 :           } else {
    2207           0 :             IDBFS.removeRemoteEntry(store, path, done);
    2208           0 :           }
    2209           0 :         });
    2210           1 :       }};
    2211           1 : 
    2212           1 :   var NODEFS={isWindows:false,staticInit:function () {
    2213           0 :         NODEFS.isWindows = !!process.platform.match(/^win/);
    2214           1 :       },mount:function (mount) {
    2215           0 :         assert(ENVIRONMENT_IS_NODE);
    2216           0 :         return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0);
    2217           1 :       },createNode:function (parent, name, mode, dev) {
    2218           0 :         if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
    2219           0 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    2220           0 :         }
    2221           0 :         var node = FS.createNode(parent, name, mode);
    2222           0 :         node.node_ops = NODEFS.node_ops;
    2223           0 :         node.stream_ops = NODEFS.stream_ops;
    2224           0 :         return node;
    2225           1 :       },getMode:function (path) {
    2226           0 :         var stat;
    2227           0 :         try {
    2228           0 :           stat = fs.lstatSync(path);
    2229           0 :           if (NODEFS.isWindows) {
    2230           0 :             // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so
    2231           0 :             // propagate write bits to execute bits.
    2232           0 :             stat.mode = stat.mode | ((stat.mode & 146) >> 1);
    2233           0 :           }
    2234           0 :         } catch (e) {
    2235           0 :           if (!e.code) throw e;
    2236           0 :           throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2237           0 :         }
    2238           0 :         return stat.mode;
    2239           1 :       },realPath:function (node) {
    2240           0 :         var parts = [];
    2241           0 :         while (node.parent !== node) {
    2242           0 :           parts.push(node.name);
    2243           0 :           node = node.parent;
    2244           0 :         }
    2245           0 :         parts.push(node.mount.opts.root);
    2246           0 :         parts.reverse();
    2247           0 :         return PATH.join.apply(null, parts);
    2248           1 :       },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) {
    2249           0 :         if (flags in NODEFS.flagsToPermissionStringMap) {
    2250           0 :           return NODEFS.flagsToPermissionStringMap[flags];
    2251           0 :         } else {
    2252           0 :           return flags;
    2253           0 :         }
    2254           1 :       },node_ops:{getattr:function (node) {
    2255           0 :           var path = NODEFS.realPath(node);
    2256           0 :           var stat;
    2257           0 :           try {
    2258           0 :             stat = fs.lstatSync(path);
    2259           0 :           } catch (e) {
    2260           0 :             if (!e.code) throw e;
    2261           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2262           0 :           }
    2263           0 :           // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096.
    2264           0 :           // See http://support.microsoft.com/kb/140365
    2265           0 :           if (NODEFS.isWindows && !stat.blksize) {
    2266           0 :             stat.blksize = 4096;
    2267           0 :           }
    2268           0 :           if (NODEFS.isWindows && !stat.blocks) {
    2269           0 :             stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0;
    2270           0 :           }
    2271           0 :           return {
    2272           0 :             dev: stat.dev,
    2273           0 :             ino: stat.ino,
    2274           0 :             mode: stat.mode,
    2275           0 :             nlink: stat.nlink,
    2276           0 :             uid: stat.uid,
    2277           0 :             gid: stat.gid,
    2278           0 :             rdev: stat.rdev,
    2279           0 :             size: stat.size,
    2280           0 :             atime: stat.atime,
    2281           0 :             mtime: stat.mtime,
    2282           0 :             ctime: stat.ctime,
    2283           0 :             blksize: stat.blksize,
    2284           0 :             blocks: stat.blocks
    2285           0 :           };
    2286           1 :         },setattr:function (node, attr) {
    2287           0 :           var path = NODEFS.realPath(node);
    2288           0 :           try {
    2289           0 :             if (attr.mode !== undefined) {
    2290           0 :               fs.chmodSync(path, attr.mode);
    2291           0 :               // update the common node structure mode as well
    2292           0 :               node.mode = attr.mode;
    2293           0 :             }
    2294           0 :             if (attr.timestamp !== undefined) {
    2295           0 :               var date = new Date(attr.timestamp);
    2296           0 :               fs.utimesSync(path, date, date);
    2297           0 :             }
    2298           0 :             if (attr.size !== undefined) {
    2299           0 :               fs.truncateSync(path, attr.size);
    2300           0 :             }
    2301           0 :           } catch (e) {
    2302           0 :             if (!e.code) throw e;
    2303           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2304           0 :           }
    2305           1 :         },lookup:function (parent, name) {
    2306           0 :           var path = PATH.join2(NODEFS.realPath(parent), name);
    2307           0 :           var mode = NODEFS.getMode(path);
    2308           0 :           return NODEFS.createNode(parent, name, mode);
    2309           1 :         },mknod:function (parent, name, mode, dev) {
    2310           0 :           var node = NODEFS.createNode(parent, name, mode, dev);
    2311           0 :           // create the backing node for this in the fs root as well
    2312           0 :           var path = NODEFS.realPath(node);
    2313           0 :           try {
    2314           0 :             if (FS.isDir(node.mode)) {
    2315           0 :               fs.mkdirSync(path, node.mode);
    2316           0 :             } else {
    2317           0 :               fs.writeFileSync(path, '', { mode: node.mode });
    2318           0 :             }
    2319           0 :           } catch (e) {
    2320           0 :             if (!e.code) throw e;
    2321           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2322           0 :           }
    2323           0 :           return node;
    2324           1 :         },rename:function (oldNode, newDir, newName) {
    2325           0 :           var oldPath = NODEFS.realPath(oldNode);
    2326           0 :           var newPath = PATH.join2(NODEFS.realPath(newDir), newName);
    2327           0 :           try {
    2328           0 :             fs.renameSync(oldPath, newPath);
    2329           0 :           } catch (e) {
    2330           0 :             if (!e.code) throw e;
    2331           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2332           0 :           }
    2333           1 :         },unlink:function (parent, name) {
    2334           0 :           var path = PATH.join2(NODEFS.realPath(parent), name);
    2335           0 :           try {
    2336           0 :             fs.unlinkSync(path);
    2337           0 :           } catch (e) {
    2338           0 :             if (!e.code) throw e;
    2339           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2340           0 :           }
    2341           1 :         },rmdir:function (parent, name) {
    2342           0 :           var path = PATH.join2(NODEFS.realPath(parent), name);
    2343           0 :           try {
    2344           0 :             fs.rmdirSync(path);
    2345           0 :           } catch (e) {
    2346           0 :             if (!e.code) throw e;
    2347           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2348           0 :           }
    2349           1 :         },readdir:function (node) {
    2350           0 :           var path = NODEFS.realPath(node);
    2351           0 :           try {
    2352           0 :             return fs.readdirSync(path);
    2353           0 :           } catch (e) {
    2354           0 :             if (!e.code) throw e;
    2355           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2356           0 :           }
    2357           1 :         },symlink:function (parent, newName, oldPath) {
    2358           0 :           var newPath = PATH.join2(NODEFS.realPath(parent), newName);
    2359           0 :           try {
    2360           0 :             fs.symlinkSync(oldPath, newPath);
    2361           0 :           } catch (e) {
    2362           0 :             if (!e.code) throw e;
    2363           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2364           0 :           }
    2365           1 :         },readlink:function (node) {
    2366           0 :           var path = NODEFS.realPath(node);
    2367           0 :           try {
    2368           0 :             return fs.readlinkSync(path);
    2369           0 :           } catch (e) {
    2370           0 :             if (!e.code) throw e;
    2371           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2372           0 :           }
    2373           1 :         }},stream_ops:{open:function (stream) {
    2374           0 :           var path = NODEFS.realPath(stream.node);
    2375           0 :           try {
    2376           0 :             if (FS.isFile(stream.node.mode)) {
    2377           0 :               stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags));
    2378           0 :             }
    2379           0 :           } catch (e) {
    2380           0 :             if (!e.code) throw e;
    2381           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2382           0 :           }
    2383           1 :         },close:function (stream) {
    2384           0 :           try {
    2385           0 :             if (FS.isFile(stream.node.mode) && stream.nfd) {
    2386           0 :               fs.closeSync(stream.nfd);
    2387           0 :             }
    2388           0 :           } catch (e) {
    2389           0 :             if (!e.code) throw e;
    2390           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2391           0 :           }
    2392           1 :         },read:function (stream, buffer, offset, length, position) {
    2393           0 :           // FIXME this is terrible.
    2394           0 :           var nbuffer = new Buffer(length);
    2395           0 :           var res;
    2396           0 :           try {
    2397           0 :             res = fs.readSync(stream.nfd, nbuffer, 0, length, position);
    2398           0 :           } catch (e) {
    2399           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2400           0 :           }
    2401           0 :           if (res > 0) {
    2402           0 :             for (var i = 0; i < res; i++) {
    2403           0 :               buffer[offset + i] = nbuffer[i];
    2404           0 :             }
    2405           0 :           }
    2406           0 :           return res;
    2407           1 :         },write:function (stream, buffer, offset, length, position) {
    2408           0 :           // FIXME this is terrible.
    2409           0 :           var nbuffer = new Buffer(buffer.subarray(offset, offset + length));
    2410           0 :           var res;
    2411           0 :           try {
    2412           0 :             res = fs.writeSync(stream.nfd, nbuffer, 0, length, position);
    2413           0 :           } catch (e) {
    2414           0 :             throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2415           0 :           }
    2416           0 :           return res;
    2417           1 :         },llseek:function (stream, offset, whence) {
    2418           0 :           var position = offset;
    2419           0 :           if (whence === 1) {  // SEEK_CUR.
    2420           0 :             position += stream.position;
    2421           0 :           } else if (whence === 2) {  // SEEK_END.
    2422           0 :             if (FS.isFile(stream.node.mode)) {
    2423           0 :               try {
    2424           0 :                 var stat = fs.fstatSync(stream.nfd);
    2425           0 :                 position += stat.size;
    2426           0 :               } catch (e) {
    2427           0 :                 throw new FS.ErrnoError(ERRNO_CODES[e.code]);
    2428           0 :               }
    2429           0 :             }
    2430           0 :           }
    2431           0 : 
    2432           0 :           if (position < 0) {
    2433           0 :             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    2434           0 :           }
    2435           0 : 
    2436           0 :           stream.position = position;
    2437           0 :           return position;
    2438           1 :         }}};
    2439           1 : 
    2440           1 :   var _stdin=allocate(1, "i32*", ALLOC_STATIC);
    2441           1 : 
    2442           1 :   var _stdout=allocate(1, "i32*", ALLOC_STATIC);
    2443           1 : 
    2444           1 :   var _stderr=allocate(1, "i32*", ALLOC_STATIC);
    2445           1 : 
    2446           1 :   function _fflush(stream) {
    2447           0 :       // int fflush(FILE *stream);
    2448           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html
    2449           0 :       // we don't currently perform any user-space buffering of data
    2450           1 :     }var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},handleFSError:function (e) {
    2451           0 :         if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace();
    2452           0 :         return ___setErrNo(e.errno);
    2453          21 :       },lookupPath:function (path, opts) {
    2454          21 :         path = PATH.resolve(FS.cwd(), path);
    2455          21 :         opts = opts || {};
    2456          21 : 
    2457          21 :         var defaults = {
    2458          21 :           follow_mount: true,
    2459          21 :           recurse_count: 0
    2460          21 :         };
    2461          21 :         for (var key in defaults) {
    2462          21 :           if (opts[key] === undefined) {
    2463          21 :             opts[key] = defaults[key];
    2464          21 :           }
    2465          21 :         }
    2466          21 : 
    2467          21 :         if (opts.recurse_count > 8) {  // max recursive lookup of 8
    2468          21 :           throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
    2469          21 :         }
    2470          21 : 
    2471          21 :         // split the path
    2472          60 :         var parts = PATH.normalizeArray(path.split('/').filter(function(p) {
    2473          60 :           return !!p;
    2474          60 :         }), false);
    2475          21 : 
    2476          21 :         // start at the root
    2477          21 :         var current = FS.root;
    2478          21 :         var current_path = '/';
    2479          21 : 
    2480          21 :         for (var i = 0; i < parts.length; i++) {
    2481          21 :           var islast = (i === parts.length-1);
    2482          21 :           if (islast && opts.parent) {
    2483          21 :             // stop resolving
    2484          21 :             break;
    2485          21 :           }
    2486          21 : 
    2487          21 :           current = FS.lookupNode(current, parts[i]);
    2488          21 :           current_path = PATH.join2(current_path, parts[i]);
    2489          21 : 
    2490          21 :           // jump to the mount's root node if this is a mountpoint
    2491          21 :           if (FS.isMountpoint(current)) {
    2492          21 :             if (!islast || (islast && opts.follow_mount)) {
    2493          21 :               current = current.mounted.root;
    2494          21 :             }
    2495          21 :           }
    2496          21 : 
    2497          21 :           // by default, lookupPath will not follow a symlink if it is the final path component.
    2498          21 :           // setting opts.follow = true will override this behavior.
    2499          21 :           if (!islast || opts.follow) {
    2500          21 :             var count = 0;
    2501          21 :             while (FS.isLink(current.mode)) {
    2502          21 :               var link = FS.readlink(current_path);
    2503          21 :               current_path = PATH.resolve(PATH.dirname(current_path), link);
    2504          21 : 
    2505          21 :               var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
    2506          21 :               current = lookup.node;
    2507          21 : 
    2508          21 :               if (count++ > 40) {  // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
    2509          21 :                 throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
    2510          21 :               }
    2511          21 :             }
    2512          21 :           }
    2513          21 :         }
    2514          21 : 
    2515          21 :         return { path: current_path, node: current };
    2516          21 :       },getPath:function (node) {
    2517           5 :         var path;
    2518           5 :         while (true) {
    2519           5 :           if (FS.isRoot(node)) {
    2520           5 :             var mount = node.mount.mountpoint;
    2521           5 :             if (!path) return mount;
    2522           5 :             return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path;
    2523           5 :           }
    2524           5 :           path = path ? node.name + '/' + path : node.name;
    2525           5 :           node = node.parent;
    2526           5 :         }
    2527          52 :       },hashName:function (parentid, name) {
    2528          52 :         var hash = 0;
    2529          52 : 
    2530          52 : 
    2531          52 :         for (var i = 0; i < name.length; i++) {
    2532          52 :           hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
    2533          52 :         }
    2534          52 :         return ((parentid + hash) >>> 0) % FS.nameTable.length;
    2535          52 :       },hashAddNode:function (node) {
    2536          13 :         var hash = FS.hashName(node.parent.id, node.name);
    2537          13 :         node.name_next = FS.nameTable[hash];
    2538          13 :         FS.nameTable[hash] = node;
    2539          13 :       },hashRemoveNode:function (node) {
    2540           0 :         var hash = FS.hashName(node.parent.id, node.name);
    2541           0 :         if (FS.nameTable[hash] === node) {
    2542           0 :           FS.nameTable[hash] = node.name_next;
    2543           0 :         } else {
    2544           0 :           var current = FS.nameTable[hash];
    2545           0 :           while (current) {
    2546           0 :             if (current.name_next === node) {
    2547           0 :               current.name_next = node.name_next;
    2548           0 :               break;
    2549           0 :             }
    2550           0 :             current = current.name_next;
    2551           0 :           }
    2552           0 :         }
    2553          39 :       },lookupNode:function (parent, name) {
    2554          39 :         var err = FS.mayLookup(parent);
    2555          39 :         if (err) {
    2556          39 :           throw new FS.ErrnoError(err);
    2557          39 :         }
    2558          39 :         var hash = FS.hashName(parent.id, name);
    2559          39 :         for (var node = FS.nameTable[hash]; node; node = node.name_next) {
    2560          39 :           var nodeName = node.name;
    2561          39 :           if (node.parent.id === parent.id && nodeName === name) {
    2562          39 :             return node;
    2563          39 :           }
    2564          39 :         }
    2565          39 :         // if we failed to find it in the cache, call into the VFS
    2566          39 :         return FS.lookup(parent, name);
    2567          39 :       },createNode:function (parent, name, mode, rdev) {
    2568          13 :         if (!FS.FSNode) {
    2569          13 :           FS.FSNode = function(parent, name, mode, rdev) {
    2570          13 :             if (!parent) {
    2571          13 :               parent = this;  // root node sets parent to itself
    2572          13 :             }
    2573          13 :             this.parent = parent;
    2574          13 :             this.mount = parent.mount;
    2575          13 :             this.mounted = null;
    2576          13 :             this.id = FS.nextInode++;
    2577          13 :             this.name = name;
    2578          13 :             this.mode = mode;
    2579          13 :             this.node_ops = {};
    2580          13 :             this.stream_ops = {};
    2581          13 :             this.rdev = rdev;
    2582          13 :           };
    2583          13 : 
    2584          13 :           FS.FSNode.prototype = {};
    2585          13 : 
    2586          13 :           // compatibility
    2587          13 :           var readMode = 292 | 73;
    2588          13 :           var writeMode = 146;
    2589          13 : 
    2590          13 :           // NOTE we must use Object.defineProperties instead of individual calls to
    2591          13 :           // Object.defineProperty in order to make closure compiler happy
    2592          13 :           Object.defineProperties(FS.FSNode.prototype, {
    2593          13 :             read: {
    2594          13 :               get: function() { return (this.mode & readMode) === readMode; },
    2595          13 :               set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; }
    2596          13 :             },
    2597          13 :             write: {
    2598          13 :               get: function() { return (this.mode & writeMode) === writeMode; },
    2599          13 :               set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; }
    2600          13 :             },
    2601          13 :             isFolder: {
    2602          13 :               get: function() { return FS.isDir(this.mode); },
    2603          13 :             },
    2604          13 :             isDevice: {
    2605          13 :               get: function() { return FS.isChrdev(this.mode); },
    2606          13 :             },
    2607          13 :           });
    2608          13 :         }
    2609          13 : 
    2610          13 :         var node = new FS.FSNode(parent, name, mode, rdev);
    2611          13 : 
    2612          13 :         FS.hashAddNode(node);
    2613          13 : 
    2614          13 :         return node;
    2615          13 :       },destroyNode:function (node) {
    2616           0 :         FS.hashRemoveNode(node);
    2617          13 :       },isRoot:function (node) {
    2618          13 :         return node === node.parent;
    2619          28 :       },isMountpoint:function (node) {
    2620          28 :         return !!node.mounted;
    2621          28 :       },isFile:function (mode) {
    2622           8 :         return (mode & 61440) === 32768;
    2623          27 :       },isDir:function (mode) {
    2624          27 :         return (mode & 61440) === 16384;
    2625          39 :       },isLink:function (mode) {
    2626          39 :         return (mode & 61440) === 40960;
    2627          39 :       },isChrdev:function (mode) {
    2628           8 :         return (mode & 61440) === 8192;
    2629          12 :       },isBlkdev:function (mode) {
    2630          12 :         return (mode & 61440) === 24576;
    2631          12 :       },isFIFO:function (mode) {
    2632          12 :         return (mode & 61440) === 4096;
    2633          12 :       },isSocket:function (mode) {
    2634           0 :         return (mode & 49152) === 49152;
    2635           4 :       },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) {
    2636           4 :         var flags = FS.flagModes[str];
    2637           4 :         if (typeof flags === 'undefined') {
    2638           4 :           throw new Error('Unknown file open mode: ' + str);
    2639           4 :         }
    2640           4 :         return flags;
    2641           5 :       },flagsToPermissionString:function (flag) {
    2642           5 :         var accmode = flag & 2097155;
    2643           5 :         var perms = ['r', 'w', 'rw'][accmode];
    2644           5 :         if ((flag & 512)) {
    2645           5 :           perms += 'w';
    2646           5 :         }
    2647           5 :         return perms;
    2648          56 :       },nodePermissions:function (node, perms) {
    2649          56 :         if (FS.ignorePermissions) {
    2650          56 :           return 0;
    2651          56 :         }
    2652          56 :         // return 0 if any user, group or owner bits are set.
    2653          56 :         if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
    2654          56 :           return ERRNO_CODES.EACCES;
    2655          56 :         } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
    2656          56 :           return ERRNO_CODES.EACCES;
    2657          56 :         } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
    2658          56 :           return ERRNO_CODES.EACCES;
    2659          56 :         }
    2660          56 :         return 0;
    2661          56 :       },mayLookup:function (dir) {
    2662          39 :         return FS.nodePermissions(dir, 'x');
    2663          39 :       },mayCreate:function (dir, name) {
    2664          11 :         try {
    2665          11 :           var node = FS.lookupNode(dir, name);
    2666          11 :           return ERRNO_CODES.EEXIST;
    2667          11 :         } catch (e) {
    2668          11 :         }
    2669          11 :         return FS.nodePermissions(dir, 'wx');
    2670          11 :       },mayDelete:function (dir, name, isdir) {
    2671           0 :         var node;
    2672           0 :         try {
    2673           0 :           node = FS.lookupNode(dir, name);
    2674           0 :         } catch (e) {
    2675           0 :           return e.errno;
    2676           0 :         }
    2677           0 :         var err = FS.nodePermissions(dir, 'wx');
    2678           0 :         if (err) {
    2679           0 :           return err;
    2680           0 :         }
    2681           0 :         if (isdir) {
    2682           0 :           if (!FS.isDir(node.mode)) {
    2683           0 :             return ERRNO_CODES.ENOTDIR;
    2684           0 :           }
    2685           0 :           if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
    2686           0 :             return ERRNO_CODES.EBUSY;
    2687           0 :           }
    2688           0 :         } else {
    2689           0 :           if (FS.isDir(node.mode)) {
    2690           0 :             return ERRNO_CODES.EISDIR;
    2691           0 :           }
    2692           0 :         }
    2693           0 :         return 0;
    2694           5 :       },mayOpen:function (node, flags) {
    2695           5 :         if (!node) {
    2696           5 :           return ERRNO_CODES.ENOENT;
    2697           5 :         }
    2698           5 :         if (FS.isLink(node.mode)) {
    2699           5 :           return ERRNO_CODES.ELOOP;
    2700           5 :         } else if (FS.isDir(node.mode)) {
    2701           5 :           if ((flags & 2097155) !== 0 ||  // opening for write
    2702           5 :               (flags & 512)) {
    2703           5 :             return ERRNO_CODES.EISDIR;
    2704           5 :           }
    2705           5 :         }
    2706           5 :         return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
    2707           5 :       },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) {
    2708           5 :         fd_start = fd_start || 0;
    2709           5 :         fd_end = fd_end || FS.MAX_OPEN_FDS;
    2710           5 :         for (var fd = fd_start; fd <= fd_end; fd++) {
    2711           5 :           if (!FS.streams[fd]) {
    2712           5 :             return fd;
    2713           5 :           }
    2714           5 :         }
    2715           5 :         throw new FS.ErrnoError(ERRNO_CODES.EMFILE);
    2716          11 :       },getStream:function (fd) {
    2717          11 :         return FS.streams[fd];
    2718          11 :       },createStream:function (stream, fd_start, fd_end) {
    2719           5 :         if (!FS.FSStream) {
    2720           5 :           FS.FSStream = function(){};
    2721           5 :           FS.FSStream.prototype = {};
    2722           5 :           // compatibility
    2723           5 :           Object.defineProperties(FS.FSStream.prototype, {
    2724           5 :             object: {
    2725           5 :               get: function() { return this.node; },
    2726           5 :               set: function(val) { this.node = val; }
    2727           5 :             },
    2728           5 :             isRead: {
    2729           5 :               get: function() { return (this.flags & 2097155) !== 1; }
    2730           5 :             },
    2731           5 :             isWrite: {
    2732           5 :               get: function() { return (this.flags & 2097155) !== 0; }
    2733           5 :             },
    2734           5 :             isAppend: {
    2735           5 :               get: function() { return (this.flags & 1024); }
    2736           5 :             }
    2737           5 :           });
    2738           5 :         }
    2739           5 :         if (0) {
    2740           5 :           // reuse the object
    2741           5 :           stream.__proto__ = FS.FSStream.prototype;
    2742           5 :         } else {
    2743           5 :           var newStream = new FS.FSStream();
    2744           5 :           for (var p in stream) {
    2745           5 :             newStream[p] = stream[p];
    2746           5 :           }
    2747           5 :           stream = newStream;
    2748           5 :         }
    2749           5 :         var fd = FS.nextfd(fd_start, fd_end);
    2750           5 :         stream.fd = fd;
    2751           5 :         FS.streams[fd] = stream;
    2752           5 :         return stream;
    2753           5 :       },closeStream:function (fd) {
    2754           5 :         FS.streams[fd] = null;
    2755          14 :       },getStreamFromPtr:function (ptr) {
    2756          14 :         return FS.streams[ptr - 1];
    2757          14 :       },getPtrForStream:function (stream) {
    2758           4 :         return stream ? stream.fd + 1 : 0;
    2759           4 :       },chrdev_stream_ops:{open:function (stream) {
    2760           3 :           var device = FS.getDevice(stream.node.rdev);
    2761           3 :           // override node's stream ops with the device's
    2762           3 :           stream.stream_ops = device.stream_ops;
    2763           3 :           // forward the open call
    2764           3 :           if (stream.stream_ops.open) {
    2765           3 :             stream.stream_ops.open(stream);
    2766           3 :           }
    2767           3 :         },llseek:function () {
    2768           0 :           throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
    2769           1 :         }},major:function (dev) {
    2770           0 :         return ((dev) >> 8);
    2771           1 :       },minor:function (dev) {
    2772           0 :         return ((dev) & 0xff);
    2773           6 :       },makedev:function (ma, mi) {
    2774           6 :         return ((ma) << 8 | (mi));
    2775           6 :       },registerDevice:function (dev, ops) {
    2776           3 :         FS.devices[dev] = { stream_ops: ops };
    2777           3 :       },getDevice:function (dev) {
    2778           3 :         return FS.devices[dev];
    2779           3 :       },getMounts:function (mount) {
    2780           0 :         var mounts = [];
    2781           0 :         var check = [mount];
    2782           0 : 
    2783           0 :         while (check.length) {
    2784           0 :           var m = check.pop();
    2785           0 : 
    2786           0 :           mounts.push(m);
    2787           0 : 
    2788           0 :           check.push.apply(check, m.mounts);
    2789           0 :         }
    2790           0 : 
    2791           0 :         return mounts;
    2792           1 :       },syncfs:function (populate, callback) {
    2793           0 :         if (typeof(populate) === 'function') {
    2794           0 :           callback = populate;
    2795           0 :           populate = false;
    2796           0 :         }
    2797           0 : 
    2798           0 :         var mounts = FS.getMounts(FS.root.mount);
    2799           0 :         var completed = 0;
    2800           0 : 
    2801           0 :         function done(err) {
    2802           0 :           if (err) {
    2803           0 :             if (!done.errored) {
    2804           0 :               done.errored = true;
    2805           0 :               return callback(err);
    2806           0 :             }
    2807           0 :             return;
    2808           0 :           }
    2809           0 :           if (++completed >= mounts.length) {
    2810           0 :             callback(null);
    2811           0 :           }
    2812           0 :         };
    2813           0 : 
    2814           0 :         // sync all mounts
    2815           0 :         mounts.forEach(function (mount) {
    2816           0 :           if (!mount.type.syncfs) {
    2817           0 :             return done(null);
    2818           0 :           }
    2819           0 :           mount.type.syncfs(mount, populate, done);
    2820           0 :         });
    2821           2 :       },mount:function (type, opts, mountpoint) {
    2822           2 :         var root = mountpoint === '/';
    2823           2 :         var pseudo = !mountpoint;
    2824           2 :         var node;
    2825           2 : 
    2826           2 :         if (root && FS.root) {
    2827           2 :           throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
    2828           2 :         } else if (!root && !pseudo) {
    2829           2 :           var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
    2830           2 : 
    2831           2 :           mountpoint = lookup.path;  // use the absolute path
    2832           2 :           node = lookup.node;
    2833           2 : 
    2834           2 :           if (FS.isMountpoint(node)) {
    2835           2 :             throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
    2836           2 :           }
    2837           2 : 
    2838           2 :           if (!FS.isDir(node.mode)) {
    2839           2 :             throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
    2840           2 :           }
    2841           2 :         }
    2842           2 : 
    2843           2 :         var mount = {
    2844           2 :           type: type,
    2845           2 :           opts: opts,
    2846           2 :           mountpoint: mountpoint,
    2847           2 :           mounts: []
    2848           2 :         };
    2849           2 : 
    2850           2 :         // create a root node for the fs
    2851           2 :         var mountRoot = type.mount(mount);
    2852           2 :         mountRoot.mount = mount;
    2853           2 :         mount.root = mountRoot;
    2854           2 : 
    2855           2 :         if (root) {
    2856           2 :           FS.root = mountRoot;
    2857           2 :         } else if (node) {
    2858           2 :           // set as a mountpoint
    2859           2 :           node.mounted = mount;
    2860           2 : 
    2861           2 :           // add the new mount to the current mount's children
    2862           2 :           if (node.mount) {
    2863           2 :             node.mount.mounts.push(mount);
    2864           2 :           }
    2865           2 :         }
    2866           2 : 
    2867           2 :         return mountRoot;
    2868           2 :       },unmount:function (mountpoint) {
    2869           0 :         var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
    2870           0 : 
    2871           0 :         if (!FS.isMountpoint(lookup.node)) {
    2872           0 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    2873           0 :         }
    2874           0 : 
    2875           0 :         // destroy the nodes for this mount, and all its child mounts
    2876           0 :         var node = lookup.node;
    2877           0 :         var mount = node.mounted;
    2878           0 :         var mounts = FS.getMounts(mount);
    2879           0 : 
    2880           0 :         Object.keys(FS.nameTable).forEach(function (hash) {
    2881           0 :           var current = FS.nameTable[hash];
    2882           0 : 
    2883           0 :           while (current) {
    2884           0 :             var next = current.name_next;
    2885           0 : 
    2886           0 :             if (mounts.indexOf(current.mount) !== -1) {
    2887           0 :               FS.destroyNode(current);
    2888           0 :             }
    2889           0 : 
    2890           0 :             current = next;
    2891           0 :           }
    2892           0 :         });
    2893           0 : 
    2894           0 :         // no longer a mountpoint
    2895           0 :         node.mounted = null;
    2896           0 : 
    2897           0 :         // remove this mount from the child mounts
    2898           0 :         var idx = node.mount.mounts.indexOf(mount);
    2899           0 :         assert(idx !== -1);
    2900           0 :         node.mount.mounts.splice(idx, 1);
    2901          11 :       },lookup:function (parent, name) {
    2902          11 :         return parent.node_ops.lookup(parent, name);
    2903          11 :       },mknod:function (path, mode, dev) {
    2904           8 :         var lookup = FS.lookupPath(path, { parent: true });
    2905           8 :         var parent = lookup.node;
    2906           8 :         var name = PATH.basename(path);
    2907           8 :         var err = FS.mayCreate(parent, name);
    2908           8 :         if (err) {
    2909           8 :           throw new FS.ErrnoError(err);
    2910           8 :         }
    2911           8 :         if (!parent.node_ops.mknod) {
    2912           8 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    2913           8 :         }
    2914           8 :         return parent.node_ops.mknod(parent, name, mode, dev);
    2915           8 :       },create:function (path, mode) {
    2916           1 :         mode = mode !== undefined ? mode : 438 /* 0666 */;
    2917           1 :         mode &= 4095;
    2918           1 :         mode |= 32768;
    2919           1 :         return FS.mknod(path, mode, 0);
    2920           4 :       },mkdir:function (path, mode) {
    2921           4 :         mode = mode !== undefined ? mode : 511 /* 0777 */;
    2922           4 :         mode &= 511 | 512;
    2923           4 :         mode |= 16384;
    2924           4 :         return FS.mknod(path, mode, 0);
    2925           4 :       },mkdev:function (path, mode, dev) {
    2926           3 :         if (typeof(dev) === 'undefined') {
    2927           3 :           dev = mode;
    2928           3 :           mode = 438 /* 0666 */;
    2929           3 :         }
    2930           3 :         mode |= 8192;
    2931           3 :         return FS.mknod(path, mode, dev);
    2932           3 :       },symlink:function (oldpath, newpath) {
    2933           3 :         var lookup = FS.lookupPath(newpath, { parent: true });
    2934           3 :         var parent = lookup.node;
    2935           3 :         var newname = PATH.basename(newpath);
    2936           3 :         var err = FS.mayCreate(parent, newname);
    2937           3 :         if (err) {
    2938           3 :           throw new FS.ErrnoError(err);
    2939           3 :         }
    2940           3 :         if (!parent.node_ops.symlink) {
    2941           3 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    2942           3 :         }
    2943           3 :         return parent.node_ops.symlink(parent, newname, oldpath);
    2944           3 :       },rename:function (old_path, new_path) {
    2945           0 :         var old_dirname = PATH.dirname(old_path);
    2946           0 :         var new_dirname = PATH.dirname(new_path);
    2947           0 :         var old_name = PATH.basename(old_path);
    2948           0 :         var new_name = PATH.basename(new_path);
    2949           0 :         // parents must exist
    2950           0 :         var lookup, old_dir, new_dir;
    2951           0 :         try {
    2952           0 :           lookup = FS.lookupPath(old_path, { parent: true });
    2953           0 :           old_dir = lookup.node;
    2954           0 :           lookup = FS.lookupPath(new_path, { parent: true });
    2955           0 :           new_dir = lookup.node;
    2956           0 :         } catch (e) {
    2957           0 :           throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
    2958           0 :         }
    2959           0 :         // need to be part of the same mount
    2960           0 :         if (old_dir.mount !== new_dir.mount) {
    2961           0 :           throw new FS.ErrnoError(ERRNO_CODES.EXDEV);
    2962           0 :         }
    2963           0 :         // source must exist
    2964           0 :         var old_node = FS.lookupNode(old_dir, old_name);
    2965           0 :         // old path should not be an ancestor of the new path
    2966           0 :         var relative = PATH.relative(old_path, new_dirname);
    2967           0 :         if (relative.charAt(0) !== '.') {
    2968           0 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    2969           0 :         }
    2970           0 :         // new path should not be an ancestor of the old path
    2971           0 :         relative = PATH.relative(new_path, old_dirname);
    2972           0 :         if (relative.charAt(0) !== '.') {
    2973           0 :           throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
    2974           0 :         }
    2975           0 :         // see if the new path already exists
    2976           0 :         var new_node;
    2977           0 :         try {
    2978           0 :           new_node = FS.lookupNode(new_dir, new_name);
    2979           0 :         } catch (e) {
    2980           0 :           // not fatal
    2981           0 :         }
    2982           0 :         // early out if nothing needs to change
    2983           0 :         if (old_node === new_node) {
    2984           0 :           return;
    2985           0 :         }
    2986           0 :         // we'll need to delete the old entry
    2987           0 :         var isdir = FS.isDir(old_node.mode);
    2988           0 :         var err = FS.mayDelete(old_dir, old_name, isdir);
    2989           0 :         if (err) {
    2990           0 :           throw new FS.ErrnoError(err);
    2991           0 :         }
    2992           0 :         // need delete permissions if we'll be overwriting.
    2993           0 :         // need create permissions if new doesn't already exist.
    2994           0 :         err = new_node ?
    2995           0 :           FS.mayDelete(new_dir, new_name, isdir) :
    2996           0 :           FS.mayCreate(new_dir, new_name);
    2997           0 :         if (err) {
    2998           0 :           throw new FS.ErrnoError(err);
    2999           0 :         }
    3000           0 :         if (!old_dir.node_ops.rename) {
    3001           0 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    3002           0 :         }
    3003           0 :         if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
    3004           0 :           throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
    3005           0 :         }
    3006           0 :         // if we are going to change the parent, check write permissions
    3007           0 :         if (new_dir !== old_dir) {
    3008           0 :           err = FS.nodePermissions(old_dir, 'w');
    3009           0 :           if (err) {
    3010           0 :             throw new FS.ErrnoError(err);
    3011           0 :           }
    3012           0 :         }
    3013           0 :         // remove the node from the lookup hash
    3014           0 :         FS.hashRemoveNode(old_node);
    3015           0 :         // do the underlying fs rename
    3016           0 :         try {
    3017           0 :           old_dir.node_ops.rename(old_node, new_dir, new_name);
    3018           0 :         } catch (e) {
    3019           0 :           throw e;
    3020           0 :         } finally {
    3021           0 :           // add the node back to the hash (in case node_ops.rename
    3022           0 :           // changed its name)
    3023           0 :           FS.hashAddNode(old_node);
    3024           0 :         }
    3025           1 :       },rmdir:function (path) {
    3026           0 :         var lookup = FS.lookupPath(path, { parent: true });
    3027           0 :         var parent = lookup.node;
    3028           0 :         var name = PATH.basename(path);
    3029           0 :         var node = FS.lookupNode(parent, name);
    3030           0 :         var err = FS.mayDelete(parent, name, true);
    3031           0 :         if (err) {
    3032           0 :           throw new FS.ErrnoError(err);
    3033           0 :         }
    3034           0 :         if (!parent.node_ops.rmdir) {
    3035           0 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    3036           0 :         }
    3037           0 :         if (FS.isMountpoint(node)) {
    3038           0 :           throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
    3039           0 :         }
    3040           0 :         parent.node_ops.rmdir(parent, name);
    3041           0 :         FS.destroyNode(node);
    3042           1 :       },readdir:function (path) {
    3043           0 :         var lookup = FS.lookupPath(path, { follow: true });
    3044           0 :         var node = lookup.node;
    3045           0 :         if (!node.node_ops.readdir) {
    3046           0 :           throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
    3047           0 :         }
    3048           0 :         return node.node_ops.readdir(node);
    3049           1 :       },unlink:function (path) {
    3050           0 :         var lookup = FS.lookupPath(path, { parent: true });
    3051           0 :         var parent = lookup.node;
    3052           0 :         var name = PATH.basename(path);
    3053           0 :         var node = FS.lookupNode(parent, name);
    3054           0 :         var err = FS.mayDelete(parent, name, false);
    3055           0 :         if (err) {
    3056           0 :           // POSIX says unlink should set EPERM, not EISDIR
    3057           0 :           if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM;
    3058           0 :           throw new FS.ErrnoError(err);
    3059           0 :         }
    3060           0 :         if (!parent.node_ops.unlink) {
    3061           0 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    3062           0 :         }
    3063           0 :         if (FS.isMountpoint(node)) {
    3064           0 :           throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
    3065           0 :         }
    3066           0 :         parent.node_ops.unlink(parent, name);
    3067           0 :         FS.destroyNode(node);
    3068           3 :       },readlink:function (path) {
    3069           3 :         var lookup = FS.lookupPath(path);
    3070           3 :         var link = lookup.node;
    3071           3 :         if (!link.node_ops.readlink) {
    3072           3 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    3073           3 :         }
    3074           3 :         return link.node_ops.readlink(link);
    3075           3 :       },stat:function (path, dontFollow) {
    3076           0 :         var lookup = FS.lookupPath(path, { follow: !dontFollow });
    3077           0 :         var node = lookup.node;
    3078           0 :         if (!node.node_ops.getattr) {
    3079           0 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    3080           0 :         }
    3081           0 :         return node.node_ops.getattr(node);
    3082           1 :       },lstat:function (path) {
    3083           0 :         return FS.stat(path, true);
    3084           2 :       },chmod:function (path, mode, dontFollow) {
    3085           2 :         var node;
    3086           2 :         if (typeof path === 'string') {
    3087           2 :           var lookup = FS.lookupPath(path, { follow: !dontFollow });
    3088           2 :           node = lookup.node;
    3089           2 :         } else {
    3090           2 :           node = path;
    3091           2 :         }
    3092           2 :         if (!node.node_ops.setattr) {
    3093           2 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    3094           2 :         }
    3095           2 :         node.node_ops.setattr(node, {
    3096           2 :           mode: (mode & 4095) | (node.mode & ~4095),
    3097           2 :           timestamp: Date.now()
    3098           2 :         });
    3099           2 :       },lchmod:function (path, mode) {
    3100           0 :         FS.chmod(path, mode, true);
    3101           1 :       },fchmod:function (fd, mode) {
    3102           0 :         var stream = FS.getStream(fd);
    3103           0 :         if (!stream) {
    3104           0 :           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
    3105           0 :         }
    3106           0 :         FS.chmod(stream.node, mode);
    3107           1 :       },chown:function (path, uid, gid, dontFollow) {
    3108           0 :         var node;
    3109           0 :         if (typeof path === 'string') {
    3110           0 :           var lookup = FS.lookupPath(path, { follow: !dontFollow });
    3111           0 :           node = lookup.node;
    3112           0 :         } else {
    3113           0 :           node = path;
    3114           0 :         }
    3115           0 :         if (!node.node_ops.setattr) {
    3116           0 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    3117           0 :         }
    3118           0 :         node.node_ops.setattr(node, {
    3119           0 :           timestamp: Date.now()
    3120           0 :           // we ignore the uid / gid for now
    3121           0 :         });
    3122           1 :       },lchown:function (path, uid, gid) {
    3123           0 :         FS.chown(path, uid, gid, true);
    3124           1 :       },fchown:function (fd, uid, gid) {
    3125           0 :         var stream = FS.getStream(fd);
    3126           0 :         if (!stream) {
    3127           0 :           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
    3128           0 :         }
    3129           0 :         FS.chown(stream.node, uid, gid);
    3130           1 :       },truncate:function (path, len) {
    3131           1 :         if (len < 0) {
    3132           1 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    3133           1 :         }
    3134           1 :         var node;
    3135           1 :         if (typeof path === 'string') {
    3136           1 :           var lookup = FS.lookupPath(path, { follow: true });
    3137           1 :           node = lookup.node;
    3138           1 :         } else {
    3139           1 :           node = path;
    3140           1 :         }
    3141           1 :         if (!node.node_ops.setattr) {
    3142           1 :           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
    3143           1 :         }
    3144           1 :         if (FS.isDir(node.mode)) {
    3145           1 :           throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
    3146           1 :         }
    3147           1 :         if (!FS.isFile(node.mode)) {
    3148           1 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    3149           1 :         }
    3150           1 :         var err = FS.nodePermissions(node, 'w');
    3151           1 :         if (err) {
    3152           1 :           throw new FS.ErrnoError(err);
    3153           1 :         }
    3154           1 :         node.node_ops.setattr(node, {
    3155           1 :           size: len,
    3156           1 :           timestamp: Date.now()
    3157           1 :         });
    3158           1 :       },ftruncate:function (fd, len) {
    3159           0 :         var stream = FS.getStream(fd);
    3160           0 :         if (!stream) {
    3161           0 :           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
    3162           0 :         }
    3163           0 :         if ((stream.flags & 2097155) === 0) {
    3164           0 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    3165           0 :         }
    3166           0 :         FS.truncate(stream.node, len);
    3167           1 :       },utime:function (path, atime, mtime) {
    3168           0 :         var lookup = FS.lookupPath(path, { follow: true });
    3169           0 :         var node = lookup.node;
    3170           0 :         node.node_ops.setattr(node, {
    3171           0 :           timestamp: Math.max(atime, mtime)
    3172           0 :         });
    3173           5 :       },open:function (path, flags, mode, fd_start, fd_end) {
    3174           5 :         flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;
    3175           5 :         mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode;
    3176           5 :         if ((flags & 64)) {
    3177           5 :           mode = (mode & 4095) | 32768;
    3178           5 :         } else {
    3179           5 :           mode = 0;
    3180           5 :         }
    3181           5 :         var node;
    3182           5 :         if (typeof path === 'object') {
    3183           5 :           node = path;
    3184           5 :         } else {
    3185           5 :           path = PATH.normalize(path);
    3186           5 :           try {
    3187           5 :             var lookup = FS.lookupPath(path, {
    3188           5 :               follow: !(flags & 131072)
    3189           5 :             });
    3190           5 :             node = lookup.node;
    3191           5 :           } catch (e) {
    3192           5 :             // ignore
    3193           5 :           }
    3194           5 :         }
    3195           5 :         // perhaps we need to create the node
    3196           5 :         if ((flags & 64)) {
    3197           5 :           if (node) {
    3198           5 :             // if O_CREAT and O_EXCL are set, error out if the node already exists
    3199           5 :             if ((flags & 128)) {
    3200           5 :               throw new FS.ErrnoError(ERRNO_CODES.EEXIST);
    3201           5 :             }
    3202           5 :           } else {
    3203           5 :             // node doesn't exist, try to create it
    3204           5 :             node = FS.mknod(path, mode, 0);
    3205           5 :           }
    3206           5 :         }
    3207           5 :         if (!node) {
    3208           5 :           throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
    3209           5 :         }
    3210           5 :         // can't truncate a device
    3211           5 :         if (FS.isChrdev(node.mode)) {
    3212           5 :           flags &= ~512;
    3213           5 :         }
    3214           5 :         // check permissions
    3215           5 :         var err = FS.mayOpen(node, flags);
    3216           5 :         if (err) {
    3217           5 :           throw new FS.ErrnoError(err);
    3218           5 :         }
    3219           5 :         // do truncation if necessary
    3220           5 :         if ((flags & 512)) {
    3221           5 :           FS.truncate(node, 0);
    3222           5 :         }
    3223           5 :         // we've already handled these, don't pass down to the underlying vfs
    3224           5 :         flags &= ~(128 | 512);
    3225           5 : 
    3226           5 :         // register the stream with the filesystem
    3227           5 :         var stream = FS.createStream({
    3228           5 :           node: node,
    3229           5 :           path: FS.getPath(node),  // we want the absolute path to the node
    3230           5 :           flags: flags,
    3231           5 :           seekable: true,
    3232           5 :           position: 0,
    3233           5 :           stream_ops: node.stream_ops,
    3234           5 :           // used by the file family libc calls (fopen, fwrite, ferror, etc.)
    3235           5 :           ungotten: [],
    3236           5 :           error: false
    3237           5 :         }, fd_start, fd_end);
    3238           5 :         // call the new stream's open function
    3239           5 :         if (stream.stream_ops.open) {
    3240           5 :           stream.stream_ops.open(stream);
    3241           5 :         }
    3242           5 :         if (Module['logReadFiles'] && !(flags & 1)) {
    3243           5 :           if (!FS.readFiles) FS.readFiles = {};
    3244           5 :           if (!(path in FS.readFiles)) {
    3245           5 :             FS.readFiles[path] = 1;
    3246           5 :             Module['printErr']('read file: ' + path);
    3247           5 :           }
    3248           5 :         }
    3249           5 :         return stream;
    3250           5 :       },close:function (stream) {
    3251           5 :         try {
    3252           5 :           if (stream.stream_ops.close) {
    3253           5 :             stream.stream_ops.close(stream);
    3254           5 :           }
    3255           5 :         } catch (e) {
    3256           5 :           throw e;
    3257           5 :         } finally {
    3258           5 :           FS.closeStream(stream.fd);
    3259           5 :         }
    3260           5 :       },llseek:function (stream, offset, whence) {
    3261           0 :         if (!stream.seekable || !stream.stream_ops.llseek) {
    3262           0 :           throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
    3263           0 :         }
    3264           0 :         return stream.stream_ops.llseek(stream, offset, whence);
    3265           3 :       },read:function (stream, buffer, offset, length, position) {
    3266           3 :         if (length < 0 || position < 0) {
    3267           3 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    3268           3 :         }
    3269           3 :         if ((stream.flags & 2097155) === 1) {
    3270           3 :           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
    3271           3 :         }
    3272           3 :         if (FS.isDir(stream.node.mode)) {
    3273           3 :           throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
    3274           3 :         }
    3275           3 :         if (!stream.stream_ops.read) {
    3276           3 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    3277           3 :         }
    3278           3 :         var seeking = true;
    3279           3 :         if (typeof position === 'undefined') {
    3280           3 :           position = stream.position;
    3281           3 :           seeking = false;
    3282           3 :         } else if (!stream.seekable) {
    3283           3 :           throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
    3284           3 :         }
    3285           3 :         var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
    3286           3 :         if (!seeking) stream.position += bytesRead;
    3287           3 :         return bytesRead;
    3288           6 :       },write:function (stream, buffer, offset, length, position, canOwn) {
    3289           6 :         if (length < 0 || position < 0) {
    3290           6 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    3291           6 :         }
    3292           6 :         if ((stream.flags & 2097155) === 0) {
    3293           6 :           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
    3294           6 :         }
    3295           6 :         if (FS.isDir(stream.node.mode)) {
    3296           6 :           throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
    3297           6 :         }
    3298           6 :         if (!stream.stream_ops.write) {
    3299           6 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    3300           6 :         }
    3301           6 :         var seeking = true;
    3302           6 :         if (typeof position === 'undefined') {
    3303           6 :           position = stream.position;
    3304           6 :           seeking = false;
    3305           6 :         } else if (!stream.seekable) {
    3306           6 :           throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
    3307           6 :         }
    3308           6 :         if (stream.flags & 1024) {
    3309           6 :           // seek to the end before writing in append mode
    3310           6 :           FS.llseek(stream, 0, 2);
    3311           6 :         }
    3312           6 :         var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
    3313           6 :         if (!seeking) stream.position += bytesWritten;
    3314           6 :         return bytesWritten;
    3315           6 :       },allocate:function (stream, offset, length) {
    3316           0 :         if (offset < 0 || length <= 0) {
    3317           0 :           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    3318           0 :         }
    3319           0 :         if ((stream.flags & 2097155) === 0) {
    3320           0 :           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
    3321           0 :         }
    3322           0 :         if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) {
    3323           0 :           throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
    3324           0 :         }
    3325           0 :         if (!stream.stream_ops.allocate) {
    3326           0 :           throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
    3327           0 :         }
    3328           0 :         stream.stream_ops.allocate(stream, offset, length);
    3329           1 :       },mmap:function (stream, buffer, offset, length, position, prot, flags) {
    3330           0 :         // TODO if PROT is PROT_WRITE, make sure we have write access
    3331           0 :         if ((stream.flags & 2097155) === 1) {
    3332           0 :           throw new FS.ErrnoError(ERRNO_CODES.EACCES);
    3333           0 :         }
    3334           0 :         if (!stream.stream_ops.mmap) {
    3335           0 :           throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
    3336           0 :         }
    3337           0 :         return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
    3338           1 :       },ioctl:function (stream, cmd, arg) {
    3339           0 :         if (!stream.stream_ops.ioctl) {
    3340           0 :           throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
    3341           0 :         }
    3342           0 :         return stream.stream_ops.ioctl(stream, cmd, arg);
    3343           1 :       },readFile:function (path, opts) {
    3344           0 :         opts = opts || {};
    3345           0 :         opts.flags = opts.flags || 'r';
    3346           0 :         opts.encoding = opts.encoding || 'binary';
    3347           0 :         if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
    3348           0 :           throw new Error('Invalid encoding type "' + opts.encoding + '"');
    3349           0 :         }
    3350           0 :         var ret;
    3351           0 :         var stream = FS.open(path, opts.flags);
    3352           0 :         var stat = FS.stat(path);
    3353           0 :         var length = stat.size;
    3354           0 :         var buf = new Uint8Array(length);
    3355           0 :         FS.read(stream, buf, 0, length, 0);
    3356           0 :         if (opts.encoding === 'utf8') {
    3357           0 :           ret = '';
    3358           0 :           var utf8 = new Runtime.UTF8Processor();
    3359           0 :           for (var i = 0; i < length; i++) {
    3360           0 :             ret += utf8.processCChar(buf[i]);
    3361           0 :           }
    3362           0 :         } else if (opts.encoding === 'binary') {
    3363           0 :           ret = buf;
    3364           0 :         }
    3365           0 :         FS.close(stream);
    3366           0 :         return ret;
    3367           1 :       },writeFile:function (path, data, opts) {
    3368           0 :         opts = opts || {};
    3369           0 :         opts.flags = opts.flags || 'w';
    3370           0 :         opts.encoding = opts.encoding || 'utf8';
    3371           0 :         if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
    3372           0 :           throw new Error('Invalid encoding type "' + opts.encoding + '"');
    3373           0 :         }
    3374           0 :         var stream = FS.open(path, opts.flags, opts.mode);
    3375           0 :         if (opts.encoding === 'utf8') {
    3376           0 :           var utf8 = new Runtime.UTF8Processor();
    3377           0 :           var buf = new Uint8Array(utf8.processJSString(data));
    3378           0 :           FS.write(stream, buf, 0, buf.length, 0, opts.canOwn);
    3379           0 :         } else if (opts.encoding === 'binary') {
    3380           0 :           FS.write(stream, data, 0, data.length, 0, opts.canOwn);
    3381           0 :         }
    3382           0 :         FS.close(stream);
    3383          21 :       },cwd:function () {
    3384          21 :         return FS.currentPath;
    3385          21 :       },chdir:function (path) {
    3386           0 :         var lookup = FS.lookupPath(path, { follow: true });
    3387           0 :         if (!FS.isDir(lookup.node.mode)) {
    3388           0 :           throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
    3389           0 :         }
    3390           0 :         var err = FS.nodePermissions(lookup.node, 'x');
    3391           0 :         if (err) {
    3392           0 :           throw new FS.ErrnoError(err);
    3393           0 :         }
    3394           0 :         FS.currentPath = lookup.path;
    3395           1 :       },createDefaultDirectories:function () {
    3396           1 :         FS.mkdir('/tmp');
    3397           1 :       },createDefaultDevices:function () {
    3398           1 :         // create /dev
    3399           1 :         FS.mkdir('/dev');
    3400           1 :         // setup /dev/null
    3401           1 :         FS.registerDevice(FS.makedev(1, 3), {
    3402           1 :           read: function() { return 0; },
    3403           1 :           write: function() { return 0; }
    3404           1 :         });
    3405           1 :         FS.mkdev('/dev/null', FS.makedev(1, 3));
    3406           1 :         // setup /dev/tty and /dev/tty1
    3407           1 :         // stderr needs to print output using Module['printErr']
    3408           1 :         // so we register a second tty just for it.
    3409           1 :         TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
    3410           1 :         TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
    3411           1 :         FS.mkdev('/dev/tty', FS.makedev(5, 0));
    3412           1 :         FS.mkdev('/dev/tty1', FS.makedev(6, 0));
    3413           1 :         // we're not going to emulate the actual shm device,
    3414           1 :         // just create the tmp dirs that reside in it commonly
    3415           1 :         FS.mkdir('/dev/shm');
    3416           1 :         FS.mkdir('/dev/shm/tmp');
    3417           1 :       },createStandardStreams:function () {
    3418           1 :         // TODO deprecate the old functionality of a single
    3419           1 :         // input / output callback and that utilizes FS.createDevice
    3420           1 :         // and instead require a unique set of stream ops
    3421           1 : 
    3422           1 :         // by default, we symlink the standard streams to the
    3423           1 :         // default tty devices. however, if the standard streams
    3424           1 :         // have been overwritten we create a unique device for
    3425           1 :         // them instead.
    3426           1 :         if (Module['stdin']) {
    3427           1 :           FS.createDevice('/dev', 'stdin', Module['stdin']);
    3428           1 :         } else {
    3429           1 :           FS.symlink('/dev/tty', '/dev/stdin');
    3430           1 :         }
    3431           1 :         if (Module['stdout']) {
    3432           1 :           FS.createDevice('/dev', 'stdout', null, Module['stdout']);
    3433           1 :         } else {
    3434           1 :           FS.symlink('/dev/tty', '/dev/stdout');
    3435           1 :         }
    3436           1 :         if (Module['stderr']) {
    3437           1 :           FS.createDevice('/dev', 'stderr', null, Module['stderr']);
    3438           1 :         } else {
    3439           1 :           FS.symlink('/dev/tty1', '/dev/stderr');
    3440           1 :         }
    3441           1 : 
    3442           1 :         // open default streams for the stdin, stdout and stderr devices
    3443           1 :         var stdin = FS.open('/dev/stdin', 'r');
    3444           1 :         HEAP32[((_stdin)>>2)]=FS.getPtrForStream(stdin);
    3445           1 :         assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')');
    3446           1 : 
    3447           1 :         var stdout = FS.open('/dev/stdout', 'w');
    3448           1 :         HEAP32[((_stdout)>>2)]=FS.getPtrForStream(stdout);
    3449           1 :         assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')');
    3450           1 : 
    3451           1 :         var stderr = FS.open('/dev/stderr', 'w');
    3452           1 :         HEAP32[((_stderr)>>2)]=FS.getPtrForStream(stderr);
    3453           1 :         assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')');
    3454           2 :       },ensureErrnoError:function () {
    3455           2 :         if (FS.ErrnoError) return;
    3456           2 :         FS.ErrnoError = function ErrnoError(errno) {
    3457           1 :           this.errno = errno;
    3458           1 :           for (var key in ERRNO_CODES) {
    3459           1 :             if (ERRNO_CODES[key] === errno) {
    3460           1 :               this.code = key;
    3461           1 :               break;
    3462           1 :             }
    3463           1 :           }
    3464           1 :           this.message = ERRNO_MESSAGES[errno];
    3465           2 :         };
    3466           2 :         FS.ErrnoError.prototype = new Error();
    3467           2 :         FS.ErrnoError.prototype.constructor = FS.ErrnoError;
    3468           2 :         // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)
    3469           2 :         [ERRNO_CODES.ENOENT].forEach(function(code) {
    3470           1 :           FS.genericErrors[code] = new FS.ErrnoError(code);
    3471           1 :           FS.genericErrors[code].stack = '<generic error, no stack>';
    3472           2 :         });
    3473           2 :       },staticInit:function () {
    3474           1 :         FS.ensureErrnoError();
    3475           1 : 
    3476           1 :         FS.nameTable = new Array(4096);
    3477           1 : 
    3478           1 :         FS.mount(MEMFS, {}, '/');
    3479           1 : 
    3480           1 :         FS.createDefaultDirectories();
    3481           1 :         FS.createDefaultDevices();
    3482           1 :       },init:function (input, output, error) {
    3483           1 :         assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');
    3484           1 :         FS.init.initialized = true;
    3485           1 : 
    3486           1 :         FS.ensureErrnoError();
    3487           1 : 
    3488           1 :         // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
    3489           1 :         Module['stdin'] = input || Module['stdin'];
    3490           1 :         Module['stdout'] = output || Module['stdout'];
    3491           1 :         Module['stderr'] = error || Module['stderr'];
    3492           1 : 
    3493           1 :         FS.createStandardStreams();
    3494           1 :       },quit:function () {
    3495           1 :         FS.init.initialized = false;
    3496           1 :         for (var i = 0; i < FS.streams.length; i++) {
    3497           1 :           var stream = FS.streams[i];
    3498           1 :           if (!stream) {
    3499           1 :             continue;
    3500           1 :           }
    3501           1 :           FS.close(stream);
    3502           1 :         }
    3503           1 :       },getMode:function (canRead, canWrite) {
    3504           1 :         var mode = 0;
    3505           1 :         if (canRead) mode |= 292 | 73;
    3506           1 :         if (canWrite) mode |= 146;
    3507           1 :         return mode;
    3508           1 :       },joinPath:function (parts, forceRelative) {
    3509           0 :         var path = PATH.join.apply(null, parts);
    3510           0 :         if (forceRelative && path[0] == '/') path = path.substr(1);
    3511           0 :         return path;
    3512           1 :       },absolutePath:function (relative, base) {
    3513           0 :         return PATH.resolve(base, relative);
    3514           1 :       },standardizePath:function (path) {
    3515           0 :         return PATH.normalize(path);
    3516           1 :       },findObject:function (path, dontResolveLastLink) {
    3517           0 :         var ret = FS.analyzePath(path, dontResolveLastLink);
    3518           0 :         if (ret.exists) {
    3519           0 :           return ret.object;
    3520           0 :         } else {
    3521           0 :           ___setErrNo(ret.error);
    3522           0 :           return null;
    3523           0 :         }
    3524           1 :       },analyzePath:function (path, dontResolveLastLink) {
    3525           0 :         // operate from within the context of the symlink's target
    3526           0 :         try {
    3527           0 :           var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
    3528           0 :           path = lookup.path;
    3529           0 :         } catch (e) {
    3530           0 :         }
    3531           0 :         var ret = {
    3532           0 :           isRoot: false, exists: false, error: 0, name: null, path: null, object: null,
    3533           0 :           parentExists: false, parentPath: null, parentObject: null
    3534           0 :         };
    3535           0 :         try {
    3536           0 :           var lookup = FS.lookupPath(path, { parent: true });
    3537           0 :           ret.parentExists = true;
    3538           0 :           ret.parentPath = lookup.path;
    3539           0 :           ret.parentObject = lookup.node;
    3540           0 :           ret.name = PATH.basename(path);
    3541           0 :           lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
    3542           0 :           ret.exists = true;
    3543           0 :           ret.path = lookup.path;
    3544           0 :           ret.object = lookup.node;
    3545           0 :           ret.name = lookup.node.name;
    3546           0 :           ret.isRoot = lookup.path === '/';
    3547           0 :         } catch (e) {
    3548           0 :           ret.error = e.errno;
    3549           0 :         };
    3550           0 :         return ret;
    3551           1 :       },createFolder:function (parent, name, canRead, canWrite) {
    3552           0 :         var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
    3553           0 :         var mode = FS.getMode(canRead, canWrite);
    3554           0 :         return FS.mkdir(path, mode);
    3555           1 :       },createPath:function (parent, path, canRead, canWrite) {
    3556           0 :         parent = typeof parent === 'string' ? parent : FS.getPath(parent);
    3557           0 :         var parts = path.split('/').reverse();
    3558           0 :         while (parts.length) {
    3559           0 :           var part = parts.pop();
    3560           0 :           if (!part) continue;
    3561           0 :           var current = PATH.join2(parent, part);
    3562           0 :           try {
    3563           0 :             FS.mkdir(current);
    3564           0 :           } catch (e) {
    3565           0 :             // ignore EEXIST
    3566           0 :           }
    3567           0 :           parent = current;
    3568           0 :         }
    3569           0 :         return current;
    3570           1 :       },createFile:function (parent, name, properties, canRead, canWrite) {
    3571           0 :         var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
    3572           0 :         var mode = FS.getMode(canRead, canWrite);
    3573           0 :         return FS.create(path, mode);
    3574           1 :       },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) {
    3575           1 :         var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;
    3576           1 :         var mode = FS.getMode(canRead, canWrite);
    3577           1 :         var node = FS.create(path, mode);
    3578           1 :         if (data) {
    3579           1 :           if (typeof data === 'string') {
    3580           1 :             var arr = new Array(data.length);
    3581           1 :             for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
    3582           1 :             data = arr;
    3583           1 :           }
    3584           1 :           // make sure we can write to the file
    3585           1 :           FS.chmod(node, mode | 146);
    3586           1 :           var stream = FS.open(node, 'w');
    3587           1 :           FS.write(stream, data, 0, data.length, 0, canOwn);
    3588           1 :           FS.close(stream);
    3589           1 :           FS.chmod(node, mode);
    3590           1 :         }
    3591           1 :         return node;
    3592           1 :       },createDevice:function (parent, name, input, output) {
    3593           0 :         var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
    3594           0 :         var mode = FS.getMode(!!input, !!output);
    3595           0 :         if (!FS.createDevice.major) FS.createDevice.major = 64;
    3596           0 :         var dev = FS.makedev(FS.createDevice.major++, 0);
    3597           0 :         // Create a fake device that a set of stream ops to emulate
    3598           0 :         // the old behavior.
    3599           0 :         FS.registerDevice(dev, {
    3600           0 :           open: function(stream) {
    3601           0 :             stream.seekable = false;
    3602           0 :           },
    3603           0 :           close: function(stream) {
    3604           0 :             // flush any pending line data
    3605           0 :             if (output && output.buffer && output.buffer.length) {
    3606           0 :               output(10);
    3607           0 :             }
    3608           0 :           },
    3609           0 :           read: function(stream, buffer, offset, length, pos /* ignored */) {
    3610           0 :             var bytesRead = 0;
    3611           0 :             for (var i = 0; i < length; i++) {
    3612           0 :               var result;
    3613           0 :               try {
    3614           0 :                 result = input();
    3615           0 :               } catch (e) {
    3616           0 :                 throw new FS.ErrnoError(ERRNO_CODES.EIO);
    3617           0 :               }
    3618           0 :               if (result === undefined && bytesRead === 0) {
    3619           0 :                 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
    3620           0 :               }
    3621           0 :               if (result === null || result === undefined) break;
    3622           0 :               bytesRead++;
    3623           0 :               buffer[offset+i] = result;
    3624           0 :             }
    3625           0 :             if (bytesRead) {
    3626           0 :               stream.node.timestamp = Date.now();
    3627           0 :             }
    3628           0 :             return bytesRead;
    3629           0 :           },
    3630           0 :           write: function(stream, buffer, offset, length, pos) {
    3631           0 :             for (var i = 0; i < length; i++) {
    3632           0 :               try {
    3633           0 :                 output(buffer[offset+i]);
    3634           0 :               } catch (e) {
    3635           0 :                 throw new FS.ErrnoError(ERRNO_CODES.EIO);
    3636           0 :               }
    3637           0 :             }
    3638           0 :             if (length) {
    3639           0 :               stream.node.timestamp = Date.now();
    3640           0 :             }
    3641           0 :             return i;
    3642           0 :           }
    3643           0 :         });
    3644           0 :         return FS.mkdev(path, mode, dev);
    3645           1 :       },createLink:function (parent, name, target, canRead, canWrite) {
    3646           0 :         var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
    3647           0 :         return FS.symlink(target, path);
    3648           1 :       },forceLoadFile:function (obj) {
    3649           0 :         if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
    3650           0 :         var success = true;
    3651           0 :         if (typeof XMLHttpRequest !== 'undefined') {
    3652           0 :           throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
    3653           0 :         } else if (Module['read']) {
    3654           0 :           // Command-line.
    3655           0 :           try {
    3656           0 :             // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
    3657           0 :             //          read() will try to parse UTF8.
    3658           0 :             obj.contents = intArrayFromString(Module['read'](obj.url), true);
    3659           0 :           } catch (e) {
    3660           0 :             success = false;
    3661           0 :           }
    3662           0 :         } else {
    3663           0 :           throw new Error('Cannot load without read() or XMLHttpRequest.');
    3664           0 :         }
    3665           0 :         if (!success) ___setErrNo(ERRNO_CODES.EIO);
    3666           0 :         return success;
    3667           1 :       },createLazyFile:function (parent, name, url, canRead, canWrite) {
    3668           0 :         // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
    3669           0 :         function LazyUint8Array() {
    3670           0 :           this.lengthKnown = false;
    3671           0 :           this.chunks = []; // Loaded chunks. Index is the chunk number
    3672           0 :         }
    3673           0 :         LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
    3674           0 :           if (idx > this.length-1 || idx < 0) {
    3675           0 :             return undefined;
    3676           0 :           }
    3677           0 :           var chunkOffset = idx % this.chunkSize;
    3678           0 :           var chunkNum = Math.floor(idx / this.chunkSize);
    3679           0 :           return this.getter(chunkNum)[chunkOffset];
    3680           0 :         }
    3681           0 :         LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
    3682           0 :           this.getter = getter;
    3683           0 :         }
    3684           0 :         LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
    3685           0 :             // Find length
    3686           0 :             var xhr = new XMLHttpRequest();
    3687           0 :             xhr.open('HEAD', url, false);
    3688           0 :             xhr.send(null);
    3689           0 :             if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
    3690           0 :             var datalength = Number(xhr.getResponseHeader("Content-length"));
    3691           0 :             var header;
    3692           0 :             var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
    3693           0 :             var chunkSize = 1024*1024; // Chunk size in bytes
    3694           0 : 
    3695           0 :             if (!hasByteServing) chunkSize = datalength;
    3696           0 : 
    3697           0 :             // Function to get a range from the remote URL.
    3698           0 :             var doXHR = (function(from, to) {
    3699           0 :               if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
    3700           0 :               if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
    3701           0 : 
    3702           0 :               // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
    3703           0 :               var xhr = new XMLHttpRequest();
    3704           0 :               xhr.open('GET', url, false);
    3705           0 :               if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
    3706           0 : 
    3707           0 :               // Some hints to the browser that we want binary data.
    3708           0 :               if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
    3709           0 :               if (xhr.overrideMimeType) {
    3710           0 :                 xhr.overrideMimeType('text/plain; charset=x-user-defined');
    3711           0 :               }
    3712           0 : 
    3713           0 :               xhr.send(null);
    3714           0 :               if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
    3715           0 :               if (xhr.response !== undefined) {
    3716           0 :                 return new Uint8Array(xhr.response || []);
    3717           0 :               } else {
    3718           0 :                 return intArrayFromString(xhr.responseText || '', true);
    3719           0 :               }
    3720           0 :             });
    3721           0 :             var lazyArray = this;
    3722           0 :             lazyArray.setDataGetter(function(chunkNum) {
    3723           0 :               var start = chunkNum * chunkSize;
    3724           0 :               var end = (chunkNum+1) * chunkSize - 1; // including this byte
    3725           0 :               end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
    3726           0 :               if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
    3727           0 :                 lazyArray.chunks[chunkNum] = doXHR(start, end);
    3728           0 :               }
    3729           0 :               if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
    3730           0 :               return lazyArray.chunks[chunkNum];
    3731           0 :             });
    3732           0 : 
    3733           0 :             this._length = datalength;
    3734           0 :             this._chunkSize = chunkSize;
    3735           0 :             this.lengthKnown = true;
    3736           0 :         }
    3737           0 :         if (typeof XMLHttpRequest !== 'undefined') {
    3738           0 :           if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
    3739           0 :           var lazyArray = new LazyUint8Array();
    3740           0 :           Object.defineProperty(lazyArray, "length", {
    3741           0 :               get: function() {
    3742           0 :                   if(!this.lengthKnown) {
    3743           0 :                       this.cacheLength();
    3744           0 :                   }
    3745           0 :                   return this._length;
    3746           0 :               }
    3747           0 :           });
    3748           0 :           Object.defineProperty(lazyArray, "chunkSize", {
    3749           0 :               get: function() {
    3750           0 :                   if(!this.lengthKnown) {
    3751           0 :                       this.cacheLength();
    3752           0 :                   }
    3753           0 :                   return this._chunkSize;
    3754           0 :               }
    3755           0 :           });
    3756           0 : 
    3757           0 :           var properties = { isDevice: false, contents: lazyArray };
    3758           0 :         } else {
    3759           0 :           var properties = { isDevice: false, url: url };
    3760           0 :         }
    3761           0 : 
    3762           0 :         var node = FS.createFile(parent, name, properties, canRead, canWrite);
    3763           0 :         // This is a total hack, but I want to get this lazy file code out of the
    3764           0 :         // core of MEMFS. If we want to keep this lazy file concept I feel it should
    3765           0 :         // be its own thin LAZYFS proxying calls to MEMFS.
    3766           0 :         if (properties.contents) {
    3767           0 :           node.contents = properties.contents;
    3768           0 :         } else if (properties.url) {
    3769           0 :           node.contents = null;
    3770           0 :           node.url = properties.url;
    3771           0 :         }
    3772           0 :         // override each stream op with one that tries to force load the lazy file first
    3773           0 :         var stream_ops = {};
    3774           0 :         var keys = Object.keys(node.stream_ops);
    3775           0 :         keys.forEach(function(key) {
    3776           0 :           var fn = node.stream_ops[key];
    3777           0 :           stream_ops[key] = function forceLoadLazyFile() {
    3778           0 :             if (!FS.forceLoadFile(node)) {
    3779           0 :               throw new FS.ErrnoError(ERRNO_CODES.EIO);
    3780           0 :             }
    3781           0 :             return fn.apply(null, arguments);
    3782           0 :           };
    3783           0 :         });
    3784           0 :         // use a custom read function
    3785           0 :         stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {
    3786           0 :           if (!FS.forceLoadFile(node)) {
    3787           0 :             throw new FS.ErrnoError(ERRNO_CODES.EIO);
    3788           0 :           }
    3789           0 :           var contents = stream.node.contents;
    3790           0 :           if (position >= contents.length)
    3791           0 :             return 0;
    3792           0 :           var size = Math.min(contents.length - position, length);
    3793           0 :           assert(size >= 0);
    3794           0 :           if (contents.slice) { // normal array
    3795           0 :             for (var i = 0; i < size; i++) {
    3796           0 :               buffer[offset + i] = contents[position + i];
    3797           0 :             }
    3798           0 :           } else {
    3799           0 :             for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
    3800           0 :               buffer[offset + i] = contents.get(position + i);
    3801           0 :             }
    3802           0 :           }
    3803           0 :           return size;
    3804           0 :         };
    3805           0 :         node.stream_ops = stream_ops;
    3806           0 :         return node;
    3807           1 :       },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn) {
    3808           0 :         Browser.init();
    3809           0 :         // TODO we should allow people to just pass in a complete filename instead
    3810           0 :         // of parent and name being that we just join them anyways
    3811           0 :         var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent;
    3812           0 :         function processData(byteArray) {
    3813           0 :           function finish(byteArray) {
    3814           0 :             if (!dontCreateFile) {
    3815           0 :               FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
    3816           0 :             }
    3817           0 :             if (onload) onload();
    3818           0 :             removeRunDependency('cp ' + fullname);
    3819           0 :           }
    3820           0 :           var handled = false;
    3821           0 :           Module['preloadPlugins'].forEach(function(plugin) {
    3822           0 :             if (handled) return;
    3823           0 :             if (plugin['canHandle'](fullname)) {
    3824           0 :               plugin['handle'](byteArray, fullname, finish, function() {
    3825           0 :                 if (onerror) onerror();
    3826           0 :                 removeRunDependency('cp ' + fullname);
    3827           0 :               });
    3828           0 :               handled = true;
    3829           0 :             }
    3830           0 :           });
    3831           0 :           if (!handled) finish(byteArray);
    3832           0 :         }
    3833           0 :         addRunDependency('cp ' + fullname);
    3834           0 :         if (typeof url == 'string') {
    3835           0 :           Browser.asyncLoad(url, function(byteArray) {
    3836           0 :             processData(byteArray);
    3837           0 :           }, onerror);
    3838           0 :         } else {
    3839           0 :           processData(url);
    3840           0 :         }
    3841           1 :       },indexedDB:function () {
    3842           0 :         return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
    3843           1 :       },DB_NAME:function () {
    3844           0 :         return 'EM_FS_' + window.location.pathname;
    3845           1 :       },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) {
    3846           0 :         onload = onload || function(){};
    3847           0 :         onerror = onerror || function(){};
    3848           0 :         var indexedDB = FS.indexedDB();
    3849           0 :         try {
    3850           0 :           var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
    3851           0 :         } catch (e) {
    3852           0 :           return onerror(e);
    3853           0 :         }
    3854           0 :         openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
    3855           0 :           console.log('creating db');
    3856           0 :           var db = openRequest.result;
    3857           0 :           db.createObjectStore(FS.DB_STORE_NAME);
    3858           0 :         };
    3859           0 :         openRequest.onsuccess = function openRequest_onsuccess() {
    3860           0 :           var db = openRequest.result;
    3861           0 :           var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');
    3862           0 :           var files = transaction.objectStore(FS.DB_STORE_NAME);
    3863           0 :           var ok = 0, fail = 0, total = paths.length;
    3864           0 :           function finish() {
    3865           0 :             if (fail == 0) onload(); else onerror();
    3866           0 :           }
    3867           0 :           paths.forEach(function(path) {
    3868           0 :             var putRequest = files.put(FS.analyzePath(path).object.contents, path);
    3869           0 :             putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() };
    3870           0 :             putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() };
    3871           0 :           });
    3872           0 :           transaction.onerror = onerror;
    3873           0 :         };
    3874           0 :         openRequest.onerror = onerror;
    3875           1 :       },loadFilesFromDB:function (paths, onload, onerror) {
    3876           0 :         onload = onload || function(){};
    3877           0 :         onerror = onerror || function(){};
    3878           0 :         var indexedDB = FS.indexedDB();
    3879           0 :         try {
    3880           0 :           var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
    3881           0 :         } catch (e) {
    3882           0 :           return onerror(e);
    3883           0 :         }
    3884           0 :         openRequest.onupgradeneeded = onerror; // no database to load from
    3885           0 :         openRequest.onsuccess = function openRequest_onsuccess() {
    3886           0 :           var db = openRequest.result;
    3887           0 :           try {
    3888           0 :             var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');
    3889           0 :           } catch(e) {
    3890           0 :             onerror(e);
    3891           0 :             return;
    3892           0 :           }
    3893           0 :           var files = transaction.objectStore(FS.DB_STORE_NAME);
    3894           0 :           var ok = 0, fail = 0, total = paths.length;
    3895           0 :           function finish() {
    3896           0 :             if (fail == 0) onload(); else onerror();
    3897           0 :           }
    3898           0 :           paths.forEach(function(path) {
    3899           0 :             var getRequest = files.get(path);
    3900           0 :             getRequest.onsuccess = function getRequest_onsuccess() {
    3901           0 :               if (FS.analyzePath(path).exists) {
    3902           0 :                 FS.unlink(path);
    3903           0 :               }
    3904           0 :               FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
    3905           0 :               ok++;
    3906           0 :               if (ok + fail == total) finish();
    3907           0 :             };
    3908           0 :             getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() };
    3909           0 :           });
    3910           0 :           transaction.onerror = onerror;
    3911           0 :         };
    3912           0 :         openRequest.onerror = onerror;
    3913           1 :       }};
    3914           1 : 
    3915           1 :   function _lseek(fildes, offset, whence) {
    3916           0 :       // off_t lseek(int fildes, off_t offset, int whence);
    3917           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/lseek.html
    3918           0 :       var stream = FS.getStream(fildes);
    3919           0 :       if (!stream) {
    3920           0 :         ___setErrNo(ERRNO_CODES.EBADF);
    3921           0 :         return -1;
    3922           0 :       }
    3923           0 :       try {
    3924           0 :         return FS.llseek(stream, offset, whence);
    3925           0 :       } catch (e) {
    3926           0 :         FS.handleFSError(e);
    3927           0 :         return -1;
    3928           0 :       }
    3929           1 :     }
    3930           1 : 
    3931           6 :   function _fileno(stream) {
    3932           6 :       // int fileno(FILE *stream);
    3933           6 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fileno.html
    3934           6 :       stream = FS.getStreamFromPtr(stream);
    3935           6 :       if (!stream) return -1;
    3936           6 :       return stream.fd;
    3937           6 :     }function _fseek(stream, offset, whence) {
    3938           0 :       // int fseek(FILE *stream, long offset, int whence);
    3939           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fseek.html
    3940           0 :       var fd = _fileno(stream);
    3941           0 :       var ret = _lseek(fd, offset, whence);
    3942           0 :       if (ret == -1) {
    3943           0 :         return -1;
    3944           0 :       }
    3945           0 :       stream = FS.getStreamFromPtr(stream);
    3946           0 :       stream.eof = false;
    3947           0 :       return 0;
    3948           1 :     }
    3949           1 : 
    3950           1 : 
    3951           1 :   Module["_i64Subtract"] = _i64Subtract;
    3952           1 : 
    3953           1 : 
    3954           1 :   Module["_i64Add"] = _i64Add;
    3955           1 : 
    3956           1 :   function _setlocale(category, locale) {
    3957           0 :       if (!_setlocale.ret) _setlocale.ret = allocate([0], 'i8', ALLOC_NORMAL);
    3958           0 :       return _setlocale.ret;
    3959           1 :     }
    3960           1 : 
    3961           1 : 
    3962           1 :   function _close(fildes) {
    3963           1 :       // int close(int fildes);
    3964           1 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/close.html
    3965           1 :       var stream = FS.getStream(fildes);
    3966           1 :       if (!stream) {
    3967           1 :         ___setErrNo(ERRNO_CODES.EBADF);
    3968           1 :         return -1;
    3969           1 :       }
    3970           1 :       try {
    3971           1 :         FS.close(stream);
    3972           1 :         return 0;
    3973           1 :       } catch (e) {
    3974           1 :         FS.handleFSError(e);
    3975           1 :         return -1;
    3976           1 :       }
    3977           1 :     }
    3978           1 : 
    3979           1 :   function _fsync(fildes) {
    3980           1 :       // int fsync(int fildes);
    3981           1 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fsync.html
    3982           1 :       var stream = FS.getStream(fildes);
    3983           1 :       if (stream) {
    3984           1 :         // We write directly to the file system, so there's nothing to do here.
    3985           1 :         return 0;
    3986           1 :       } else {
    3987           1 :         ___setErrNo(ERRNO_CODES.EBADF);
    3988           1 :         return -1;
    3989           1 :       }
    3990           1 :     }function _fclose(stream) {
    3991           1 :       // int fclose(FILE *stream);
    3992           1 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fclose.html
    3993           1 :       var fd = _fileno(stream);
    3994           1 :       _fsync(fd);
    3995           1 :       return _close(fd);
    3996           1 :     }
    3997           1 : 
    3998           1 : 
    3999           1 : 
    4000           1 : 
    4001           1 : 
    4002           1 :   function _mkport() { throw 'TODO' }var SOCKFS={mount:function (mount) {
    4003           1 :         return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
    4004           1 :       },createSocket:function (family, type, protocol) {
    4005           0 :         var streaming = type == 1;
    4006           0 :         if (protocol) {
    4007           0 :           assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp
    4008           0 :         }
    4009           0 : 
    4010           0 :         // create our internal socket structure
    4011           0 :         var sock = {
    4012           0 :           family: family,
    4013           0 :           type: type,
    4014           0 :           protocol: protocol,
    4015           0 :           server: null,
    4016           0 :           peers: {},
    4017           0 :           pending: [],
    4018           0 :           recv_queue: [],
    4019           0 :           sock_ops: SOCKFS.websocket_sock_ops
    4020           0 :         };
    4021           0 : 
    4022           0 :         // create the filesystem node to store the socket structure
    4023           0 :         var name = SOCKFS.nextname();
    4024           0 :         var node = FS.createNode(SOCKFS.root, name, 49152, 0);
    4025           0 :         node.sock = sock;
    4026           0 : 
    4027           0 :         // and the wrapping stream that enables library functions such
    4028           0 :         // as read and write to indirectly interact with the socket
    4029           0 :         var stream = FS.createStream({
    4030           0 :           path: name,
    4031           0 :           node: node,
    4032           0 :           flags: FS.modeStringToFlags('r+'),
    4033           0 :           seekable: false,
    4034           0 :           stream_ops: SOCKFS.stream_ops
    4035           0 :         });
    4036           0 : 
    4037           0 :         // map the new stream to the socket structure (sockets have a 1:1
    4038           0 :         // relationship with a stream)
    4039           0 :         sock.stream = stream;
    4040           0 : 
    4041           0 :         return sock;
    4042           1 :       },getSocket:function (fd) {
    4043           0 :         var stream = FS.getStream(fd);
    4044           0 :         if (!stream || !FS.isSocket(stream.node.mode)) {
    4045           0 :           return null;
    4046           0 :         }
    4047           0 :         return stream.node.sock;
    4048           1 :       },stream_ops:{poll:function (stream) {
    4049           0 :           var sock = stream.node.sock;
    4050           0 :           return sock.sock_ops.poll(sock);
    4051           1 :         },ioctl:function (stream, request, varargs) {
    4052           0 :           var sock = stream.node.sock;
    4053           0 :           return sock.sock_ops.ioctl(sock, request, varargs);
    4054           1 :         },read:function (stream, buffer, offset, length, position /* ignored */) {
    4055           0 :           var sock = stream.node.sock;
    4056           0 :           var msg = sock.sock_ops.recvmsg(sock, length);
    4057           0 :           if (!msg) {
    4058           0 :             // socket is closed
    4059           0 :             return 0;
    4060           0 :           }
    4061           0 :           buffer.set(msg.buffer, offset);
    4062           0 :           return msg.buffer.length;
    4063           1 :         },write:function (stream, buffer, offset, length, position /* ignored */) {
    4064           0 :           var sock = stream.node.sock;
    4065           0 :           return sock.sock_ops.sendmsg(sock, buffer, offset, length);
    4066           1 :         },close:function (stream) {
    4067           0 :           var sock = stream.node.sock;
    4068           0 :           sock.sock_ops.close(sock);
    4069           1 :         }},nextname:function () {
    4070           0 :         if (!SOCKFS.nextname.current) {
    4071           0 :           SOCKFS.nextname.current = 0;
    4072           0 :         }
    4073           0 :         return 'socket[' + (SOCKFS.nextname.current++) + ']';
    4074           1 :       },websocket_sock_ops:{createPeer:function (sock, addr, port) {
    4075           0 :           var ws;
    4076           0 : 
    4077           0 :           if (typeof addr === 'object') {
    4078           0 :             ws = addr;
    4079           0 :             addr = null;
    4080           0 :             port = null;
    4081           0 :           }
    4082           0 : 
    4083           0 :           if (ws) {
    4084           0 :             // for sockets that've already connected (e.g. we're the server)
    4085           0 :             // we can inspect the _socket property for the address
    4086           0 :             if (ws._socket) {
    4087           0 :               addr = ws._socket.remoteAddress;
    4088           0 :               port = ws._socket.remotePort;
    4089           0 :             }
    4090           0 :             // if we're just now initializing a connection to the remote,
    4091           0 :             // inspect the url property
    4092           0 :             else {
    4093           0 :               var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);
    4094           0 :               if (!result) {
    4095           0 :                 throw new Error('WebSocket URL must be in the format ws(s)://address:port');
    4096           0 :               }
    4097           0 :               addr = result[1];
    4098           0 :               port = parseInt(result[2], 10);
    4099           0 :             }
    4100           0 :           } else {
    4101           0 :             // create the actual websocket object and connect
    4102           0 :             try {
    4103           0 :               // runtimeConfig gets set to true if WebSocket runtime configuration is available.
    4104           0 :               var runtimeConfig = (Module['websocket'] && ('object' === typeof Module['websocket']));
    4105           0 : 
    4106           0 :               // The default value is 'ws://' the replace is needed because the compiler replaces "//" comments with '#'
    4107           0 :               // comments without checking context, so we'd end up with ws:#, the replace swaps the "#" for "//" again.
    4108           0 :               var url = 'ws:#'.replace('#', '//');
    4109           0 : 
    4110           0 :               if (runtimeConfig) {
    4111           0 :                 if ('string' === typeof Module['websocket']['url']) {
    4112           0 :                   url = Module['websocket']['url']; // Fetch runtime WebSocket URL config.
    4113           0 :                 }
    4114           0 :               }
    4115           0 : 
    4116           0 :               if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it.
    4117           0 :                 url = url + addr + ':' + port;
    4118           0 :               }
    4119           0 : 
    4120           0 :               // Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set.
    4121           0 :               var subProtocols = 'binary'; // The default value is 'binary'
    4122           0 : 
    4123           0 :               if (runtimeConfig) {
    4124           0 :                 if ('string' === typeof Module['websocket']['subprotocol']) {
    4125           0 :                   subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config.
    4126           0 :                 }
    4127           0 :               }
    4128           0 : 
    4129           0 :               // The regex trims the string (removes spaces at the beginning and end, then splits the string by
    4130           0 :               // <any space>,<any space> into an Array. Whitespace removal is important for Websockify and ws.
    4131           0 :               subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */);
    4132           0 : 
    4133           0 :               // The node ws library API for specifying optional subprotocol is slightly different than the browser's.
    4134           0 :               var opts = ENVIRONMENT_IS_NODE ? {'protocol': subProtocols.toString()} : subProtocols;
    4135           0 : 
    4136           0 :               // If node we use the ws library.
    4137           0 :               var WebSocket = ENVIRONMENT_IS_NODE ? require('ws') : window['WebSocket'];
    4138           0 :               ws = new WebSocket(url, opts);
    4139           0 :               ws.binaryType = 'arraybuffer';
    4140           0 :             } catch (e) {
    4141           0 :               throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH);
    4142           0 :             }
    4143           0 :           }
    4144           0 : 
    4145           0 : 
    4146           0 :           var peer = {
    4147           0 :             addr: addr,
    4148           0 :             port: port,
    4149           0 :             socket: ws,
    4150           0 :             dgram_send_queue: []
    4151           0 :           };
    4152           0 : 
    4153           0 :           SOCKFS.websocket_sock_ops.addPeer(sock, peer);
    4154           0 :           SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer);
    4155           0 : 
    4156           0 :           // if this is a bound dgram socket, send the port number first to allow
    4157           0 :           // us to override the ephemeral port reported to us by remotePort on the
    4158           0 :           // remote end.
    4159           0 :           if (sock.type === 2 && typeof sock.sport !== 'undefined') {
    4160           0 :             peer.dgram_send_queue.push(new Uint8Array([
    4161           0 :                 255, 255, 255, 255,
    4162           0 :                 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0),
    4163           0 :                 ((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff)
    4164           0 :             ]));
    4165           0 :           }
    4166           0 : 
    4167           0 :           return peer;
    4168           1 :         },getPeer:function (sock, addr, port) {
    4169           0 :           return sock.peers[addr + ':' + port];
    4170           1 :         },addPeer:function (sock, peer) {
    4171           0 :           sock.peers[peer.addr + ':' + peer.port] = peer;
    4172           1 :         },removePeer:function (sock, peer) {
    4173           0 :           delete sock.peers[peer.addr + ':' + peer.port];
    4174           1 :         },handlePeerEvents:function (sock, peer) {
    4175           0 :           var first = true;
    4176           0 : 
    4177           0 :           var handleOpen = function () {
    4178           0 :             try {
    4179           0 :               var queued = peer.dgram_send_queue.shift();
    4180           0 :               while (queued) {
    4181           0 :                 peer.socket.send(queued);
    4182           0 :                 queued = peer.dgram_send_queue.shift();
    4183           0 :               }
    4184           0 :             } catch (e) {
    4185           0 :               // not much we can do here in the way of proper error handling as we've already
    4186           0 :               // lied and said this data was sent. shut it down.
    4187           0 :               peer.socket.close();
    4188           0 :             }
    4189           0 :           };
    4190           0 : 
    4191           0 :           function handleMessage(data) {
    4192           0 :             assert(typeof data !== 'string' && data.byteLength !== undefined);  // must receive an ArrayBuffer
    4193           0 :             data = new Uint8Array(data);  // make a typed array view on the array buffer
    4194           0 : 
    4195           0 : 
    4196           0 :             // if this is the port message, override the peer's port with it
    4197           0 :             var wasfirst = first;
    4198           0 :             first = false;
    4199           0 :             if (wasfirst &&
    4200           0 :                 data.length === 10 &&
    4201           0 :                 data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 &&
    4202           0 :                 data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) {
    4203           0 :               // update the peer's port and it's key in the peer map
    4204           0 :               var newport = ((data[8] << 8) | data[9]);
    4205           0 :               SOCKFS.websocket_sock_ops.removePeer(sock, peer);
    4206           0 :               peer.port = newport;
    4207           0 :               SOCKFS.websocket_sock_ops.addPeer(sock, peer);
    4208           0 :               return;
    4209           0 :             }
    4210           0 : 
    4211           0 :             sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data });
    4212           0 :           };
    4213           0 : 
    4214           0 :           if (ENVIRONMENT_IS_NODE) {
    4215           0 :             peer.socket.on('open', handleOpen);
    4216           0 :             peer.socket.on('message', function(data, flags) {
    4217           0 :               if (!flags.binary) {
    4218           0 :                 return;
    4219           0 :               }
    4220           0 :               handleMessage((new Uint8Array(data)).buffer);  // copy from node Buffer -> ArrayBuffer
    4221           0 :             });
    4222           0 :             peer.socket.on('error', function() {
    4223           0 :               // don't throw
    4224           0 :             });
    4225           0 :           } else {
    4226           0 :             peer.socket.onopen = handleOpen;
    4227           0 :             peer.socket.onmessage = function peer_socket_onmessage(event) {
    4228           0 :               handleMessage(event.data);
    4229           0 :             };
    4230           0 :           }
    4231           1 :         },poll:function (sock) {
    4232           0 :           if (sock.type === 1 && sock.server) {
    4233           0 :             // listen sockets should only say they're available for reading
    4234           0 :             // if there are pending clients.
    4235           0 :             return sock.pending.length ? (64 | 1) : 0;
    4236           0 :           }
    4237           0 : 
    4238           0 :           var mask = 0;
    4239           0 :           var dest = sock.type === 1 ?  // we only care about the socket state for connection-based sockets
    4240           0 :             SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) :
    4241           0 :             null;
    4242           0 : 
    4243           0 :           if (sock.recv_queue.length ||
    4244           0 :               !dest ||  // connection-less sockets are always ready to read
    4245           0 :               (dest && dest.socket.readyState === dest.socket.CLOSING) ||
    4246           0 :               (dest && dest.socket.readyState === dest.socket.CLOSED)) {  // let recv return 0 once closed
    4247           0 :             mask |= (64 | 1);
    4248           0 :           }
    4249           0 : 
    4250           0 :           if (!dest ||  // connection-less sockets are always ready to write
    4251           0 :               (dest && dest.socket.readyState === dest.socket.OPEN)) {
    4252           0 :             mask |= 4;
    4253           0 :           }
    4254           0 : 
    4255           0 :           if ((dest && dest.socket.readyState === dest.socket.CLOSING) ||
    4256           0 :               (dest && dest.socket.readyState === dest.socket.CLOSED)) {
    4257           0 :             mask |= 16;
    4258           0 :           }
    4259           0 : 
    4260           0 :           return mask;
    4261           1 :         },ioctl:function (sock, request, arg) {
    4262           0 :           switch (request) {
    4263           0 :             case 21531:
    4264           0 :               var bytes = 0;
    4265           0 :               if (sock.recv_queue.length) {
    4266           0 :                 bytes = sock.recv_queue[0].data.length;
    4267           0 :               }
    4268           0 :               HEAP32[((arg)>>2)]=bytes;
    4269           0 :               return 0;
    4270           0 :             default:
    4271           0 :               return ERRNO_CODES.EINVAL;
    4272           0 :           }
    4273           1 :         },close:function (sock) {
    4274           0 :           // if we've spawned a listen server, close it
    4275           0 :           if (sock.server) {
    4276           0 :             try {
    4277           0 :               sock.server.close();
    4278           0 :             } catch (e) {
    4279           0 :             }
    4280           0 :             sock.server = null;
    4281           0 :           }
    4282           0 :           // close any peer connections
    4283           0 :           var peers = Object.keys(sock.peers);
    4284           0 :           for (var i = 0; i < peers.length; i++) {
    4285           0 :             var peer = sock.peers[peers[i]];
    4286           0 :             try {
    4287           0 :               peer.socket.close();
    4288           0 :             } catch (e) {
    4289           0 :             }
    4290           0 :             SOCKFS.websocket_sock_ops.removePeer(sock, peer);
    4291           0 :           }
    4292           0 :           return 0;
    4293           1 :         },bind:function (sock, addr, port) {
    4294           0 :           if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') {
    4295           0 :             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);  // already bound
    4296           0 :           }
    4297           0 :           sock.saddr = addr;
    4298           0 :           sock.sport = port || _mkport();
    4299           0 :           // in order to emulate dgram sockets, we need to launch a listen server when
    4300           0 :           // binding on a connection-less socket
    4301           0 :           // note: this is only required on the server side
    4302           0 :           if (sock.type === 2) {
    4303           0 :             // close the existing server if it exists
    4304           0 :             if (sock.server) {
    4305           0 :               sock.server.close();
    4306           0 :               sock.server = null;
    4307           0 :             }
    4308           0 :             // swallow error operation not supported error that occurs when binding in the
    4309           0 :             // browser where this isn't supported
    4310           0 :             try {
    4311           0 :               sock.sock_ops.listen(sock, 0);
    4312           0 :             } catch (e) {
    4313           0 :               if (!(e instanceof FS.ErrnoError)) throw e;
    4314           0 :               if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e;
    4315           0 :             }
    4316           0 :           }
    4317           1 :         },connect:function (sock, addr, port) {
    4318           0 :           if (sock.server) {
    4319           0 :             throw new FS.ErrnoError(ERRNO_CODS.EOPNOTSUPP);
    4320           0 :           }
    4321           0 : 
    4322           0 :           // TODO autobind
    4323           0 :           // if (!sock.addr && sock.type == 2) {
    4324           0 :           // }
    4325           0 : 
    4326           0 :           // early out if we're already connected / in the middle of connecting
    4327           0 :           if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') {
    4328           0 :             var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
    4329           0 :             if (dest) {
    4330           0 :               if (dest.socket.readyState === dest.socket.CONNECTING) {
    4331           0 :                 throw new FS.ErrnoError(ERRNO_CODES.EALREADY);
    4332           0 :               } else {
    4333           0 :                 throw new FS.ErrnoError(ERRNO_CODES.EISCONN);
    4334           0 :               }
    4335           0 :             }
    4336           0 :           }
    4337           0 : 
    4338           0 :           // add the socket to our peer list and set our
    4339           0 :           // destination address / port to match
    4340           0 :           var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
    4341           0 :           sock.daddr = peer.addr;
    4342           0 :           sock.dport = peer.port;
    4343           0 : 
    4344           0 :           // always "fail" in non-blocking mode
    4345           0 :           throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS);
    4346           1 :         },listen:function (sock, backlog) {
    4347           0 :           if (!ENVIRONMENT_IS_NODE) {
    4348           0 :             throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
    4349           0 :           }
    4350           0 :           if (sock.server) {
    4351           0 :              throw new FS.ErrnoError(ERRNO_CODES.EINVAL);  // already listening
    4352           0 :           }
    4353           0 :           var WebSocketServer = require('ws').Server;
    4354           0 :           var host = sock.saddr;
    4355           0 :           sock.server = new WebSocketServer({
    4356           0 :             host: host,
    4357           0 :             port: sock.sport
    4358           0 :             // TODO support backlog
    4359           0 :           });
    4360           0 : 
    4361           0 :           sock.server.on('connection', function(ws) {
    4362           0 :             if (sock.type === 1) {
    4363           0 :               var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol);
    4364           0 : 
    4365           0 :               // create a peer on the new socket
    4366           0 :               var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws);
    4367           0 :               newsock.daddr = peer.addr;
    4368           0 :               newsock.dport = peer.port;
    4369           0 : 
    4370           0 :               // push to queue for accept to pick up
    4371           0 :               sock.pending.push(newsock);
    4372           0 :             } else {
    4373           0 :               // create a peer on the listen socket so calling sendto
    4374           0 :               // with the listen socket and an address will resolve
    4375           0 :               // to the correct client
    4376           0 :               SOCKFS.websocket_sock_ops.createPeer(sock, ws);
    4377           0 :             }
    4378           0 :           });
    4379           0 :           sock.server.on('closed', function() {
    4380           0 :             sock.server = null;
    4381           0 :           });
    4382           0 :           sock.server.on('error', function() {
    4383           0 :             // don't throw
    4384           0 :           });
    4385           1 :         },accept:function (listensock) {
    4386           0 :           if (!listensock.server) {
    4387           0 :             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    4388           0 :           }
    4389           0 :           var newsock = listensock.pending.shift();
    4390           0 :           newsock.stream.flags = listensock.stream.flags;
    4391           0 :           return newsock;
    4392           1 :         },getname:function (sock, peer) {
    4393           0 :           var addr, port;
    4394           0 :           if (peer) {
    4395           0 :             if (sock.daddr === undefined || sock.dport === undefined) {
    4396           0 :               throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
    4397           0 :             }
    4398           0 :             addr = sock.daddr;
    4399           0 :             port = sock.dport;
    4400           0 :           } else {
    4401           0 :             // TODO saddr and sport will be set for bind()'d UDP sockets, but what
    4402           0 :             // should we be returning for TCP sockets that've been connect()'d?
    4403           0 :             addr = sock.saddr || 0;
    4404           0 :             port = sock.sport || 0;
    4405           0 :           }
    4406           0 :           return { addr: addr, port: port };
    4407           1 :         },sendmsg:function (sock, buffer, offset, length, addr, port) {
    4408           0 :           if (sock.type === 2) {
    4409           0 :             // connection-less sockets will honor the message address,
    4410           0 :             // and otherwise fall back to the bound destination address
    4411           0 :             if (addr === undefined || port === undefined) {
    4412           0 :               addr = sock.daddr;
    4413           0 :               port = sock.dport;
    4414           0 :             }
    4415           0 :             // if there was no address to fall back to, error out
    4416           0 :             if (addr === undefined || port === undefined) {
    4417           0 :               throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ);
    4418           0 :             }
    4419           0 :           } else {
    4420           0 :             // connection-based sockets will only use the bound
    4421           0 :             addr = sock.daddr;
    4422           0 :             port = sock.dport;
    4423           0 :           }
    4424           0 : 
    4425           0 :           // find the peer for the destination address
    4426           0 :           var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port);
    4427           0 : 
    4428           0 :           // early out if not connected with a connection-based socket
    4429           0 :           if (sock.type === 1) {
    4430           0 :             if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
    4431           0 :               throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
    4432           0 :             } else if (dest.socket.readyState === dest.socket.CONNECTING) {
    4433           0 :               throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
    4434           0 :             }
    4435           0 :           }
    4436           0 : 
    4437           0 :           // create a copy of the incoming data to send, as the WebSocket API
    4438           0 :           // doesn't work entirely with an ArrayBufferView, it'll just send
    4439           0 :           // the entire underlying buffer
    4440           0 :           var data;
    4441           0 :           if (buffer instanceof Array || buffer instanceof ArrayBuffer) {
    4442           0 :             data = buffer.slice(offset, offset + length);
    4443           0 :           } else {  // ArrayBufferView
    4444           0 :             data = buffer.buffer.slice(buffer.byteOffset + offset, buffer.byteOffset + offset + length);
    4445           0 :           }
    4446           0 : 
    4447           0 :           // if we're emulating a connection-less dgram socket and don't have
    4448           0 :           // a cached connection, queue the buffer to send upon connect and
    4449           0 :           // lie, saying the data was sent now.
    4450           0 :           if (sock.type === 2) {
    4451           0 :             if (!dest || dest.socket.readyState !== dest.socket.OPEN) {
    4452           0 :               // if we're not connected, open a new connection
    4453           0 :               if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
    4454           0 :                 dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
    4455           0 :               }
    4456           0 :               dest.dgram_send_queue.push(data);
    4457           0 :               return length;
    4458           0 :             }
    4459           0 :           }
    4460           0 : 
    4461           0 :           try {
    4462           0 :             // send the actual data
    4463           0 :             dest.socket.send(data);
    4464           0 :             return length;
    4465           0 :           } catch (e) {
    4466           0 :             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
    4467           0 :           }
    4468           1 :         },recvmsg:function (sock, length) {
    4469           0 :           // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html
    4470           0 :           if (sock.type === 1 && sock.server) {
    4471           0 :             // tcp servers should not be recv()'ing on the listen socket
    4472           0 :             throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
    4473           0 :           }
    4474           0 : 
    4475           0 :           var queued = sock.recv_queue.shift();
    4476           0 :           if (!queued) {
    4477           0 :             if (sock.type === 1) {
    4478           0 :               var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
    4479           0 : 
    4480           0 :               if (!dest) {
    4481           0 :                 // if we have a destination address but are not connected, error out
    4482           0 :                 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
    4483           0 :               }
    4484           0 :               else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
    4485           0 :                 // return null if the socket has closed
    4486           0 :                 return null;
    4487           0 :               }
    4488           0 :               else {
    4489           0 :                 // else, our socket is in a valid state but truly has nothing available
    4490           0 :                 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
    4491           0 :               }
    4492           0 :             } else {
    4493           0 :               throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
    4494           0 :             }
    4495           0 :           }
    4496           0 : 
    4497           0 :           // queued.data will be an ArrayBuffer if it's unadulterated, but if it's
    4498           0 :           // requeued TCP data it'll be an ArrayBufferView
    4499           0 :           var queuedLength = queued.data.byteLength || queued.data.length;
    4500           0 :           var queuedOffset = queued.data.byteOffset || 0;
    4501           0 :           var queuedBuffer = queued.data.buffer || queued.data;
    4502           0 :           var bytesRead = Math.min(length, queuedLength);
    4503           0 :           var res = {
    4504           0 :             buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead),
    4505           0 :             addr: queued.addr,
    4506           0 :             port: queued.port
    4507           0 :           };
    4508           0 : 
    4509           0 : 
    4510           0 :           // push back any unread data for TCP connections
    4511           0 :           if (sock.type === 1 && bytesRead < queuedLength) {
    4512           0 :             var bytesRemaining = queuedLength - bytesRead;
    4513           0 :             queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining);
    4514           0 :             sock.recv_queue.unshift(queued);
    4515           0 :           }
    4516           0 : 
    4517           0 :           return res;
    4518           1 :         }}};function _recv(fd, buf, len, flags) {
    4519           0 :       var sock = SOCKFS.getSocket(fd);
    4520           0 :       if (!sock) {
    4521           0 :         ___setErrNo(ERRNO_CODES.EBADF);
    4522           0 :         return -1;
    4523           0 :       }
    4524           0 :       // TODO honor flags
    4525           0 :       return _read(fd, buf, len);
    4526           1 :     }
    4527           1 : 
    4528           1 :   function _pread(fildes, buf, nbyte, offset) {
    4529           0 :       // ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset);
    4530           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html
    4531           0 :       var stream = FS.getStream(fildes);
    4532           0 :       if (!stream) {
    4533           0 :         ___setErrNo(ERRNO_CODES.EBADF);
    4534           0 :         return -1;
    4535           0 :       }
    4536           0 :       try {
    4537           0 :         var slab = HEAP8;
    4538           0 :         return FS.read(stream, slab, buf, nbyte, offset);
    4539           0 :       } catch (e) {
    4540           0 :         FS.handleFSError(e);
    4541           0 :         return -1;
    4542           0 :       }
    4543           3 :     }function _read(fildes, buf, nbyte) {
    4544           3 :       // ssize_t read(int fildes, void *buf, size_t nbyte);
    4545           3 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html
    4546           3 :       var stream = FS.getStream(fildes);
    4547           3 :       if (!stream) {
    4548           3 :         ___setErrNo(ERRNO_CODES.EBADF);
    4549           3 :         return -1;
    4550           3 :       }
    4551           3 : 
    4552           3 : 
    4553           3 :       try {
    4554           3 :         var slab = HEAP8;
    4555           3 :         return FS.read(stream, slab, buf, nbyte);
    4556           3 :       } catch (e) {
    4557           3 :         FS.handleFSError(e);
    4558           3 :         return -1;
    4559           3 :       }
    4560           3 :     }function _fread(ptr, size, nitems, stream) {
    4561           3 :       // size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
    4562           3 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fread.html
    4563           3 :       var bytesToRead = nitems * size;
    4564           3 :       if (bytesToRead == 0) {
    4565           3 :         return 0;
    4566           3 :       }
    4567           3 :       var bytesRead = 0;
    4568           3 :       var streamObj = FS.getStreamFromPtr(stream);
    4569           3 :       if (!streamObj) {
    4570           3 :         ___setErrNo(ERRNO_CODES.EBADF);
    4571           3 :         return 0;
    4572           3 :       }
    4573           3 :       while (streamObj.ungotten.length && bytesToRead > 0) {
    4574           3 :         HEAP8[((ptr++)|0)]=streamObj.ungotten.pop();
    4575           3 :         bytesToRead--;
    4576           3 :         bytesRead++;
    4577           3 :       }
    4578           3 :       var err = _read(streamObj.fd, ptr, bytesToRead);
    4579           3 :       if (err == -1) {
    4580           3 :         if (streamObj) streamObj.error = true;
    4581           3 :         return 0;
    4582           3 :       }
    4583           3 :       bytesRead += err;
    4584           3 :       if (bytesRead < bytesToRead) streamObj.eof = true;
    4585           3 :       return Math.floor(bytesRead / size);
    4586           3 :     }
    4587           1 : 
    4588           1 :   function _toupper(chr) {
    4589           0 :       if (chr >= 97 && chr <= 122) {
    4590           0 :         return chr - 97 + 65;
    4591           0 :       } else {
    4592           0 :         return chr;
    4593           0 :       }
    4594           1 :     }
    4595           1 : 
    4596           1 : 
    4597           1 : 
    4598           1 :   function _open(path, oflag, varargs) {
    4599           1 :       // int open(const char *path, int oflag, ...);
    4600           1 :       // http://pubs.opengroup.org/onlinepubs/009695399/functions/open.html
    4601           1 :       var mode = HEAP32[((varargs)>>2)];
    4602           1 :       path = Pointer_stringify(path);
    4603           1 :       try {
    4604           1 :         var stream = FS.open(path, oflag, mode);
    4605           1 :         return stream.fd;
    4606           1 :       } catch (e) {
    4607           1 :         FS.handleFSError(e);
    4608           1 :         return -1;
    4609           1 :       }
    4610           1 :     }function _fopen(filename, mode) {
    4611           1 :       // FILE *fopen(const char *restrict filename, const char *restrict mode);
    4612           1 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fopen.html
    4613           1 :       var flags;
    4614           1 :       mode = Pointer_stringify(mode);
    4615           1 :       if (mode[0] == 'r') {
    4616           1 :         if (mode.indexOf('+') != -1) {
    4617           1 :           flags = 2;
    4618           1 :         } else {
    4619           1 :           flags = 0;
    4620           1 :         }
    4621           1 :       } else if (mode[0] == 'w') {
    4622           1 :         if (mode.indexOf('+') != -1) {
    4623           1 :           flags = 2;
    4624           1 :         } else {
    4625           1 :           flags = 1;
    4626           1 :         }
    4627           1 :         flags |= 64;
    4628           1 :         flags |= 512;
    4629           1 :       } else if (mode[0] == 'a') {
    4630           1 :         if (mode.indexOf('+') != -1) {
    4631           1 :           flags = 2;
    4632           1 :         } else {
    4633           1 :           flags = 1;
    4634           1 :         }
    4635           1 :         flags |= 64;
    4636           1 :         flags |= 1024;
    4637           1 :       } else {
    4638           1 :         ___setErrNo(ERRNO_CODES.EINVAL);
    4639           1 :         return 0;
    4640           1 :       }
    4641           1 :       var fd = _open(filename, flags, allocate([0x1FF, 0, 0, 0], 'i32', ALLOC_STACK));  // All creation permissions.
    4642           1 :       return fd === -1 ? 0 : FS.getPtrForStream(FS.getStream(fd));
    4643           1 :     }
    4644           1 : 
    4645           1 :   var _emscripten_check_longjmp=true;
    4646           1 : 
    4647           1 : 
    4648           1 : 
    4649           1 :   function _send(fd, buf, len, flags) {
    4650           0 :       var sock = SOCKFS.getSocket(fd);
    4651           0 :       if (!sock) {
    4652           0 :         ___setErrNo(ERRNO_CODES.EBADF);
    4653           0 :         return -1;
    4654           0 :       }
    4655           0 :       // TODO honor flags
    4656           0 :       return _write(fd, buf, len);
    4657           1 :     }
    4658           1 : 
    4659           1 :   function _pwrite(fildes, buf, nbyte, offset) {
    4660           0 :       // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset);
    4661           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
    4662           0 :       var stream = FS.getStream(fildes);
    4663           0 :       if (!stream) {
    4664           0 :         ___setErrNo(ERRNO_CODES.EBADF);
    4665           0 :         return -1;
    4666           0 :       }
    4667           0 :       try {
    4668           0 :         var slab = HEAP8;
    4669           0 :         return FS.write(stream, slab, buf, nbyte, offset);
    4670           0 :       } catch (e) {
    4671           0 :         FS.handleFSError(e);
    4672           0 :         return -1;
    4673           0 :       }
    4674           5 :     }function _write(fildes, buf, nbyte) {
    4675           5 :       // ssize_t write(int fildes, const void *buf, size_t nbyte);
    4676           5 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
    4677           5 :       var stream = FS.getStream(fildes);
    4678           5 :       if (!stream) {
    4679           5 :         ___setErrNo(ERRNO_CODES.EBADF);
    4680           5 :         return -1;
    4681           5 :       }
    4682           5 : 
    4683           5 : 
    4684           5 :       try {
    4685           5 :         var slab = HEAP8;
    4686           5 :         return FS.write(stream, slab, buf, nbyte);
    4687           5 :       } catch (e) {
    4688           5 :         FS.handleFSError(e);
    4689           5 :         return -1;
    4690           5 :       }
    4691           5 :     }function _fputc(c, stream) {
    4692           0 :       // int fputc(int c, FILE *stream);
    4693           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputc.html
    4694           0 :       var chr = unSign(c & 0xFF);
    4695           0 :       HEAP8[((_fputc.ret)|0)]=chr;
    4696           0 :       var fd = _fileno(stream);
    4697           0 :       var ret = _write(fd, _fputc.ret, 1);
    4698           0 :       if (ret == -1) {
    4699           0 :         var streamObj = FS.getStreamFromPtr(stream);
    4700           0 :         if (streamObj) streamObj.error = true;
    4701           0 :         return -1;
    4702           0 :       } else {
    4703           0 :         return chr;
    4704           0 :       }
    4705           1 :     }
    4706           1 : 
    4707           1 :   var _log=Math_log;
    4708           1 : 
    4709           1 :   var _emscripten_postinvoke=true;
    4710           1 : 
    4711           1 : 
    4712           1 :   function _putchar(c) {
    4713           0 :       // int putchar(int c);
    4714           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/putchar.html
    4715           0 :       return _fputc(c, HEAP32[((_stdout)>>2)]);
    4716           1 :     }
    4717           1 :   Module["_saveSetjmp"] = _saveSetjmp;
    4718           1 : 
    4719           5 :   function _fwrite(ptr, size, nitems, stream) {
    4720           5 :       // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
    4721           5 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html
    4722           5 :       var bytesToWrite = nitems * size;
    4723           5 :       if (bytesToWrite == 0) return 0;
    4724           5 :       var fd = _fileno(stream);
    4725           5 :       var bytesWritten = _write(fd, ptr, bytesToWrite);
    4726           5 :       if (bytesWritten == -1) {
    4727           5 :         var streamObj = FS.getStreamFromPtr(stream);
    4728           5 :         if (streamObj) streamObj.error = true;
    4729           5 :         return 0;
    4730           5 :       } else {
    4731           5 :         return Math.floor(bytesWritten / size);
    4732           5 :       }
    4733           5 :     }
    4734           1 : 
    4735           1 :   function _system(command) {
    4736           0 :       // int system(const char *command);
    4737           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/system.html
    4738           0 :       // Can't call external programs.
    4739           0 :       ___setErrNo(ERRNO_CODES.EAGAIN);
    4740           0 :       return -1;
    4741           1 :     }
    4742           1 : 
    4743           1 :   function _frexp(x, exp_addr) {
    4744           0 :       var sig = 0, exp_ = 0;
    4745           0 :       if (x !== 0) {
    4746           0 :         var sign = 1;
    4747           0 :         if (x < 0) {
    4748           0 :           x = -x;
    4749           0 :           sign = -1;
    4750           0 :         }
    4751           0 :         var raw_exp = Math.log(x)/Math.log(2);
    4752           0 :         exp_ = Math.ceil(raw_exp);
    4753           0 :         if (exp_ === raw_exp) exp_ += 1;
    4754           0 :         sig = sign*x/Math.pow(2, exp_);
    4755           0 :       }
    4756           0 :       HEAP32[((exp_addr)>>2)]=exp_;
    4757           0 :       return sig;
    4758           1 :     }
    4759           1 : 
    4760           1 : 
    4761           1 : 
    4762           1 :   var _tzname=allocate(8, "i32*", ALLOC_STATIC);
    4763           1 : 
    4764           1 :   var _daylight=allocate(1, "i32*", ALLOC_STATIC);
    4765           1 : 
    4766           1 :   var _timezone=allocate(1, "i32*", ALLOC_STATIC);function _tzset() {
    4767           0 :       // TODO: Use (malleable) environment variables instead of system settings.
    4768           0 :       if (_tzset.called) return;
    4769           0 :       _tzset.called = true;
    4770           0 : 
    4771           0 :       HEAP32[((_timezone)>>2)]=-(new Date()).getTimezoneOffset() * 60;
    4772           0 : 
    4773           0 :       var winter = new Date(2000, 0, 1);
    4774           0 :       var summer = new Date(2000, 6, 1);
    4775           0 :       HEAP32[((_daylight)>>2)]=Number(winter.getTimezoneOffset() != summer.getTimezoneOffset());
    4776           0 : 
    4777           0 :       var winterName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | winter.toString().match(/\(([A-Z]+)\)/)[1];
    4778           0 :       var summerName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | summer.toString().match(/\(([A-Z]+)\)/)[1];
    4779           0 :       var winterNamePtr = allocate(intArrayFromString(winterName), 'i8', ALLOC_NORMAL);
    4780           0 :       var summerNamePtr = allocate(intArrayFromString(summerName), 'i8', ALLOC_NORMAL);
    4781           0 :       HEAP32[((_tzname)>>2)]=winterNamePtr;
    4782           0 :       HEAP32[(((_tzname)+(4))>>2)]=summerNamePtr;
    4783           1 :     }function _mktime(tmPtr) {
    4784           0 :       _tzset();
    4785           0 :       var year = HEAP32[(((tmPtr)+(20))>>2)];
    4786           0 :       var timestamp = new Date(year >= 1900 ? year : year + 1900,
    4787           0 :                                HEAP32[(((tmPtr)+(16))>>2)],
    4788           0 :                                HEAP32[(((tmPtr)+(12))>>2)],
    4789           0 :                                HEAP32[(((tmPtr)+(8))>>2)],
    4790           0 :                                HEAP32[(((tmPtr)+(4))>>2)],
    4791           0 :                                HEAP32[((tmPtr)>>2)],
    4792           0 :                                0).getTime() / 1000;
    4793           0 :       HEAP32[(((tmPtr)+(24))>>2)]=new Date(timestamp).getDay();
    4794           0 :       var yday = Math.round((timestamp - (new Date(year, 0, 1)).getTime()) / (1000 * 60 * 60 * 24));
    4795           0 :       HEAP32[(((tmPtr)+(28))>>2)]=yday;
    4796           0 :       return timestamp;
    4797           1 :     }
    4798           1 : 
    4799           1 :   function _isalpha(chr) {
    4800           0 :       return (chr >= 97 && chr <= 122) ||
    4801           0 :              (chr >= 65 && chr <= 90);
    4802           1 :     }
    4803           1 : 
    4804           1 : 
    4805           1 :   function _malloc(bytes) {
    4806           0 :       /* Over-allocate to make sure it is byte-aligned by 8.
    4807           0 :        * This will leak memory, but this is only the dummy
    4808           0 :        * implementation (replaced by dlmalloc normally) so
    4809           0 :        * not an issue.
    4810           0 :        */
    4811           0 :       var ptr = Runtime.dynamicAlloc(bytes + 8);
    4812           0 :       return (ptr+8) & 0xFFFFFFF8;
    4813           1 :     }
    4814           1 :   Module["_malloc"] = _malloc;function _tmpnam(s, dir, prefix) {
    4815           0 :       // char *tmpnam(char *s);
    4816           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/tmpnam.html
    4817           0 :       // NOTE: The dir and prefix arguments are for internal use only.
    4818           0 :       var folder = FS.findObject(dir || '/tmp');
    4819           0 :       if (!folder || !folder.isFolder) {
    4820           0 :         dir = '/tmp';
    4821           0 :         folder = FS.findObject(dir);
    4822           0 :         if (!folder || !folder.isFolder) return 0;
    4823           0 :       }
    4824           0 :       var name = prefix || 'file';
    4825           0 :       do {
    4826           0 :         name += String.fromCharCode(65 + Math.floor(Math.random() * 25));
    4827           0 :       } while (name in folder.contents);
    4828           0 :       var result = dir + '/' + name;
    4829           0 :       if (!_tmpnam.buffer) _tmpnam.buffer = _malloc(256);
    4830           0 :       if (!s) s = _tmpnam.buffer;
    4831           0 :       writeAsciiToMemory(result, s);
    4832           0 :       return s;
    4833           1 :     }
    4834           1 : 
    4835           1 :   var Browser={mainLoop:{scheduler:null,method:"",shouldPause:false,paused:false,queue:[],pause:function () {
    4836           0 :           Browser.mainLoop.shouldPause = true;
    4837           1 :         },resume:function () {
    4838           0 :           if (Browser.mainLoop.paused) {
    4839           0 :             Browser.mainLoop.paused = false;
    4840           0 :             Browser.mainLoop.scheduler();
    4841           0 :           }
    4842           0 :           Browser.mainLoop.shouldPause = false;
    4843           1 :         },updateStatus:function () {
    4844           0 :           if (Module['setStatus']) {
    4845           0 :             var message = Module['statusMessage'] || 'Please wait...';
    4846           0 :             var remaining = Browser.mainLoop.remainingBlockers;
    4847           0 :             var expected = Browser.mainLoop.expectedBlockers;
    4848           0 :             if (remaining) {
    4849           0 :               if (remaining < expected) {
    4850           0 :                 Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')');
    4851           0 :               } else {
    4852           0 :                 Module['setStatus'](message);
    4853           0 :               }
    4854           0 :             } else {
    4855           0 :               Module['setStatus']('');
    4856           0 :             }
    4857           0 :           }
    4858           1 :         }},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () {
    4859           0 :         if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers
    4860           0 : 
    4861           0 :         if (Browser.initted || ENVIRONMENT_IS_WORKER) return;
    4862           0 :         Browser.initted = true;
    4863           0 : 
    4864           0 :         try {
    4865           0 :           new Blob();
    4866           0 :           Browser.hasBlobConstructor = true;
    4867           0 :         } catch(e) {
    4868           0 :           Browser.hasBlobConstructor = false;
    4869           0 :           console.log("warning: no blob constructor, cannot create blobs with mimetypes");
    4870           0 :         }
    4871           0 :         Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
    4872           0 :         Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined;
    4873           0 :         if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') {
    4874           0 :           console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
    4875           0 :           Module.noImageDecoding = true;
    4876           0 :         }
    4877           0 : 
    4878           0 :         // Support for plugins that can process preloaded files. You can add more of these to
    4879           0 :         // your app by creating and appending to Module.preloadPlugins.
    4880           0 :         //
    4881           0 :         // Each plugin is asked if it can handle a file based on the file's name. If it can,
    4882           0 :         // it is given the file's raw data. When it is done, it calls a callback with the file's
    4883           0 :         // (possibly modified) data. For example, a plugin might decompress a file, or it
    4884           0 :         // might create some side data structure for use later (like an Image element, etc.).
    4885           0 : 
    4886           0 :         var imagePlugin = {};
    4887           0 :         imagePlugin['canHandle'] = function imagePlugin_canHandle(name) {
    4888           0 :           return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name);
    4889           0 :         };
    4890           0 :         imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) {
    4891           0 :           var b = null;
    4892           0 :           if (Browser.hasBlobConstructor) {
    4893           0 :             try {
    4894           0 :               b = new Blob([byteArray], { type: Browser.getMimetype(name) });
    4895           0 :               if (b.size !== byteArray.length) { // Safari bug #118630
    4896           0 :                 // Safari's Blob can only take an ArrayBuffer
    4897           0 :                 b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) });
    4898           0 :               }
    4899           0 :             } catch(e) {
    4900           0 :               Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
    4901           0 :             }
    4902           0 :           }
    4903           0 :           if (!b) {
    4904           0 :             var bb = new Browser.BlobBuilder();
    4905           0 :             bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range
    4906           0 :             b = bb.getBlob();
    4907           0 :           }
    4908           0 :           var url = Browser.URLObject.createObjectURL(b);
    4909           0 :           var img = new Image();
    4910           0 :           img.onload = function img_onload() {
    4911           0 :             assert(img.complete, 'Image ' + name + ' could not be decoded');
    4912           0 :             var canvas = document.createElement('canvas');
    4913           0 :             canvas.width = img.width;
    4914           0 :             canvas.height = img.height;
    4915           0 :             var ctx = canvas.getContext('2d');
    4916           0 :             ctx.drawImage(img, 0, 0);
    4917           0 :             Module["preloadedImages"][name] = canvas;
    4918           0 :             Browser.URLObject.revokeObjectURL(url);
    4919           0 :             if (onload) onload(byteArray);
    4920           0 :           };
    4921           0 :           img.onerror = function img_onerror(event) {
    4922           0 :             console.log('Image ' + url + ' could not be decoded');
    4923           0 :             if (onerror) onerror();
    4924           0 :           };
    4925           0 :           img.src = url;
    4926           0 :         };
    4927           0 :         Module['preloadPlugins'].push(imagePlugin);
    4928           0 : 
    4929           0 :         var audioPlugin = {};
    4930           0 :         audioPlugin['canHandle'] = function audioPlugin_canHandle(name) {
    4931           0 :           return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
    4932           0 :         };
    4933           0 :         audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) {
    4934           0 :           var done = false;
    4935           0 :           function finish(audio) {
    4936           0 :             if (done) return;
    4937           0 :             done = true;
    4938           0 :             Module["preloadedAudios"][name] = audio;
    4939           0 :             if (onload) onload(byteArray);
    4940           0 :           }
    4941           0 :           function fail() {
    4942           0 :             if (done) return;
    4943           0 :             done = true;
    4944           0 :             Module["preloadedAudios"][name] = new Audio(); // empty shim
    4945           0 :             if (onerror) onerror();
    4946           0 :           }
    4947           0 :           if (Browser.hasBlobConstructor) {
    4948           0 :             try {
    4949           0 :               var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
    4950           0 :             } catch(e) {
    4951           0 :               return fail();
    4952           0 :             }
    4953           0 :             var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
    4954           0 :             var audio = new Audio();
    4955           0 :             audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
    4956           0 :             audio.onerror = function audio_onerror(event) {
    4957           0 :               if (done) return;
    4958           0 :               console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
    4959           0 :               function encode64(data) {
    4960           0 :                 var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    4961           0 :                 var PAD = '=';
    4962           0 :                 var ret = '';
    4963           0 :                 var leftchar = 0;
    4964           0 :                 var leftbits = 0;
    4965           0 :                 for (var i = 0; i < data.length; i++) {
    4966           0 :                   leftchar = (leftchar << 8) | data[i];
    4967           0 :                   leftbits += 8;
    4968           0 :                   while (leftbits >= 6) {
    4969           0 :                     var curr = (leftchar >> (leftbits-6)) & 0x3f;
    4970           0 :                     leftbits -= 6;
    4971           0 :                     ret += BASE[curr];
    4972           0 :                   }
    4973           0 :                 }
    4974           0 :                 if (leftbits == 2) {
    4975           0 :                   ret += BASE[(leftchar&3) << 4];
    4976           0 :                   ret += PAD + PAD;
    4977           0 :                 } else if (leftbits == 4) {
    4978           0 :                   ret += BASE[(leftchar&0xf) << 2];
    4979           0 :                   ret += PAD;
    4980           0 :                 }
    4981           0 :                 return ret;
    4982           0 :               }
    4983           0 :               audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
    4984           0 :               finish(audio); // we don't wait for confirmation this worked - but it's worth trying
    4985           0 :             };
    4986           0 :             audio.src = url;
    4987           0 :             // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
    4988           0 :             Browser.safeSetTimeout(function() {
    4989           0 :               finish(audio); // try to use it even though it is not necessarily ready to play
    4990           0 :             }, 10000);
    4991           0 :           } else {
    4992           0 :             return fail();
    4993           0 :           }
    4994           0 :         };
    4995           0 :         Module['preloadPlugins'].push(audioPlugin);
    4996           0 : 
    4997           0 :         // Canvas event setup
    4998           0 : 
    4999           0 :         var canvas = Module['canvas'];
    5000           0 : 
    5001           0 :         // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module
    5002           0 :         // Module['forcedAspectRatio'] = 4 / 3;
    5003           0 : 
    5004           0 :         canvas.requestPointerLock = canvas['requestPointerLock'] ||
    5005           0 :                                     canvas['mozRequestPointerLock'] ||
    5006           0 :                                     canvas['webkitRequestPointerLock'] ||
    5007           0 :                                     canvas['msRequestPointerLock'] ||
    5008           0 :                                     function(){};
    5009           0 :         canvas.exitPointerLock = document['exitPointerLock'] ||
    5010           0 :                                  document['mozExitPointerLock'] ||
    5011           0 :                                  document['webkitExitPointerLock'] ||
    5012           0 :                                  document['msExitPointerLock'] ||
    5013           0 :                                  function(){}; // no-op if function does not exist
    5014           0 :         canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
    5015           0 : 
    5016           0 :         function pointerLockChange() {
    5017           0 :           Browser.pointerLock = document['pointerLockElement'] === canvas ||
    5018           0 :                                 document['mozPointerLockElement'] === canvas ||
    5019           0 :                                 document['webkitPointerLockElement'] === canvas ||
    5020           0 :                                 document['msPointerLockElement'] === canvas;
    5021           0 :         }
    5022           0 : 
    5023           0 :         document.addEventListener('pointerlockchange', pointerLockChange, false);
    5024           0 :         document.addEventListener('mozpointerlockchange', pointerLockChange, false);
    5025           0 :         document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
    5026           0 :         document.addEventListener('mspointerlockchange', pointerLockChange, false);
    5027           0 : 
    5028           0 :         if (Module['elementPointerLock']) {
    5029           0 :           canvas.addEventListener("click", function(ev) {
    5030           0 :             if (!Browser.pointerLock && canvas.requestPointerLock) {
    5031           0 :               canvas.requestPointerLock();
    5032           0 :               ev.preventDefault();
    5033           0 :             }
    5034           0 :           }, false);
    5035           0 :         }
    5036           1 :       },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) {
    5037           0 :         var ctx;
    5038           0 :         var errorInfo = '?';
    5039           0 :         function onContextCreationError(event) {
    5040           0 :           errorInfo = event.statusMessage || errorInfo;
    5041           0 :         }
    5042           0 :         try {
    5043           0 :           if (useWebGL) {
    5044           0 :             var contextAttributes = {
    5045           0 :               antialias: false,
    5046           0 :               alpha: false
    5047           0 :             };
    5048           0 : 
    5049           0 :             if (webGLContextAttributes) {
    5050           0 :               for (var attribute in webGLContextAttributes) {
    5051           0 :                 contextAttributes[attribute] = webGLContextAttributes[attribute];
    5052           0 :               }
    5053           0 :             }
    5054           0 : 
    5055           0 : 
    5056           0 :             canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false);
    5057           0 :             try {
    5058           0 :               ['experimental-webgl', 'webgl'].some(function(webglId) {
    5059           0 :                 return ctx = canvas.getContext(webglId, contextAttributes);
    5060           0 :               });
    5061           0 :             } finally {
    5062           0 :               canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false);
    5063           0 :             }
    5064           0 :           } else {
    5065           0 :             ctx = canvas.getContext('2d');
    5066           0 :           }
    5067           0 :           if (!ctx) throw ':(';
    5068           0 :         } catch (e) {
    5069           0 :           Module.print('Could not create canvas: ' + [errorInfo, e]);
    5070           0 :           return null;
    5071           0 :         }
    5072           0 :         if (useWebGL) {
    5073           0 :           // Set the background of the WebGL canvas to black
    5074           0 :           canvas.style.backgroundColor = "black";
    5075           0 : 
    5076           0 :           // Warn on context loss
    5077           0 :           canvas.addEventListener('webglcontextlost', function(event) {
    5078           0 :             alert('WebGL context lost. You will need to reload the page.');
    5079           0 :           }, false);
    5080           0 :         }
    5081           0 :         if (setInModule) {
    5082           0 :           GLctx = Module.ctx = ctx;
    5083           0 :           Module.useWebGL = useWebGL;
    5084           0 :           Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() });
    5085           0 :           Browser.init();
    5086           0 :         }
    5087           0 :         return ctx;
    5088           1 :       },destroyContext:function (canvas, useWebGL, setInModule) {},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function (lockPointer, resizeCanvas) {
    5089           0 :         Browser.lockPointer = lockPointer;
    5090           0 :         Browser.resizeCanvas = resizeCanvas;
    5091           0 :         if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true;
    5092           0 :         if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false;
    5093           0 : 
    5094           0 :         var canvas = Module['canvas'];
    5095           0 :         function fullScreenChange() {
    5096           0 :           Browser.isFullScreen = false;
    5097           0 :           var canvasContainer = canvas.parentNode;
    5098           0 :           if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
    5099           0 :                document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
    5100           0 :                document['fullScreenElement'] || document['fullscreenElement'] ||
    5101           0 :                document['msFullScreenElement'] || document['msFullscreenElement'] ||
    5102           0 :                document['webkitCurrentFullScreenElement']) === canvasContainer) {
    5103           0 :             canvas.cancelFullScreen = document['cancelFullScreen'] ||
    5104           0 :                                       document['mozCancelFullScreen'] ||
    5105           0 :                                       document['webkitCancelFullScreen'] ||
    5106           0 :                                       document['msExitFullscreen'] ||
    5107           0 :                                       document['exitFullscreen'] ||
    5108           0 :                                       function() {};
    5109           0 :             canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document);
    5110           0 :             if (Browser.lockPointer) canvas.requestPointerLock();
    5111           0 :             Browser.isFullScreen = true;
    5112           0 :             if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize();
    5113           0 :           } else {
    5114           0 : 
    5115           0 :             // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen
    5116           0 :             canvasContainer.parentNode.insertBefore(canvas, canvasContainer);
    5117           0 :             canvasContainer.parentNode.removeChild(canvasContainer);
    5118           0 : 
    5119           0 :             if (Browser.resizeCanvas) Browser.setWindowedCanvasSize();
    5120           0 :           }
    5121           0 :           if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen);
    5122           0 :           Browser.updateCanvasDimensions(canvas);
    5123           0 :         }
    5124           0 : 
    5125           0 :         if (!Browser.fullScreenHandlersInstalled) {
    5126           0 :           Browser.fullScreenHandlersInstalled = true;
    5127           0 :           document.addEventListener('fullscreenchange', fullScreenChange, false);
    5128           0 :           document.addEventListener('mozfullscreenchange', fullScreenChange, false);
    5129           0 :           document.addEventListener('webkitfullscreenchange', fullScreenChange, false);
    5130           0 :           document.addEventListener('MSFullscreenChange', fullScreenChange, false);
    5131           0 :         }
    5132           0 : 
    5133           0 :         // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root
    5134           0 :         var canvasContainer = document.createElement("div");
    5135           0 :         canvas.parentNode.insertBefore(canvasContainer, canvas);
    5136           0 :         canvasContainer.appendChild(canvas);
    5137           0 : 
    5138           0 :         // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size)
    5139           0 :         canvasContainer.requestFullScreen = canvasContainer['requestFullScreen'] ||
    5140           0 :                                             canvasContainer['mozRequestFullScreen'] ||
    5141           0 :                                             canvasContainer['msRequestFullscreen'] ||
    5142           0 :                                            (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
    5143           0 :         canvasContainer.requestFullScreen();
    5144           1 :       },requestAnimationFrame:function requestAnimationFrame(func) {
    5145           0 :         if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js)
    5146           0 :           setTimeout(func, 1000/60);
    5147           0 :         } else {
    5148           0 :           if (!window.requestAnimationFrame) {
    5149           0 :             window.requestAnimationFrame = window['requestAnimationFrame'] ||
    5150           0 :                                            window['mozRequestAnimationFrame'] ||
    5151           0 :                                            window['webkitRequestAnimationFrame'] ||
    5152           0 :                                            window['msRequestAnimationFrame'] ||
    5153           0 :                                            window['oRequestAnimationFrame'] ||
    5154           0 :                                            window['setTimeout'];
    5155           0 :           }
    5156           0 :           window.requestAnimationFrame(func);
    5157           0 :         }
    5158           1 :       },safeCallback:function (func) {
    5159           0 :         return function() {
    5160           0 :           if (!ABORT) return func.apply(null, arguments);
    5161           0 :         };
    5162           1 :       },safeRequestAnimationFrame:function (func) {
    5163           0 :         return Browser.requestAnimationFrame(function() {
    5164           0 :           if (!ABORT) func();
    5165           0 :         });
    5166           1 :       },safeSetTimeout:function (func, timeout) {
    5167           0 :         return setTimeout(function() {
    5168           0 :           if (!ABORT) func();
    5169           0 :         }, timeout);
    5170           1 :       },safeSetInterval:function (func, timeout) {
    5171           0 :         return setInterval(function() {
    5172           0 :           if (!ABORT) func();
    5173           0 :         }, timeout);
    5174           1 :       },getMimetype:function (name) {
    5175           0 :         return {
    5176           0 :           'jpg': 'image/jpeg',
    5177           0 :           'jpeg': 'image/jpeg',
    5178           0 :           'png': 'image/png',
    5179           0 :           'bmp': 'image/bmp',
    5180           0 :           'ogg': 'audio/ogg',
    5181           0 :           'wav': 'audio/wav',
    5182           0 :           'mp3': 'audio/mpeg'
    5183           0 :         }[name.substr(name.lastIndexOf('.')+1)];
    5184           1 :       },getUserMedia:function (func) {
    5185           0 :         if(!window.getUserMedia) {
    5186           0 :           window.getUserMedia = navigator['getUserMedia'] ||
    5187           0 :                                 navigator['mozGetUserMedia'];
    5188           0 :         }
    5189           0 :         window.getUserMedia(func);
    5190           1 :       },getMovementX:function (event) {
    5191           0 :         return event['movementX'] ||
    5192           0 :                event['mozMovementX'] ||
    5193           0 :                event['webkitMovementX'] ||
    5194           0 :                0;
    5195           1 :       },getMovementY:function (event) {
    5196           0 :         return event['movementY'] ||
    5197           0 :                event['mozMovementY'] ||
    5198           0 :                event['webkitMovementY'] ||
    5199           0 :                0;
    5200           1 :       },getMouseWheelDelta:function (event) {
    5201           0 :         return Math.max(-1, Math.min(1, event.type === 'DOMMouseScroll' ? event.detail : -event.wheelDelta));
    5202           1 :       },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup
    5203           0 :         if (Browser.pointerLock) {
    5204           0 :           // When the pointer is locked, calculate the coordinates
    5205           0 :           // based on the movement of the mouse.
    5206           0 :           // Workaround for Firefox bug 764498
    5207           0 :           if (event.type != 'mousemove' &&
    5208           0 :               ('mozMovementX' in event)) {
    5209           0 :             Browser.mouseMovementX = Browser.mouseMovementY = 0;
    5210           0 :           } else {
    5211           0 :             Browser.mouseMovementX = Browser.getMovementX(event);
    5212           0 :             Browser.mouseMovementY = Browser.getMovementY(event);
    5213           0 :           }
    5214           0 : 
    5215           0 :           // check if SDL is available
    5216           0 :           if (typeof SDL != "undefined") {
    5217           0 :             Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
    5218           0 :             Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;
    5219           0 :           } else {
    5220           0 :             // just add the mouse delta to the current absolut mouse position
    5221           0 :             // FIXME: ideally this should be clamped against the canvas size and zero
    5222           0 :             Browser.mouseX += Browser.mouseMovementX;
    5223           0 :             Browser.mouseY += Browser.mouseMovementY;
    5224           0 :           }
    5225           0 :         } else {
    5226           0 :           // Otherwise, calculate the movement based on the changes
    5227           0 :           // in the coordinates.
    5228           0 :           var rect = Module["canvas"].getBoundingClientRect();
    5229           0 :           var x, y;
    5230           0 : 
    5231           0 :           // Neither .scrollX or .pageXOffset are defined in a spec, but
    5232           0 :           // we prefer .scrollX because it is currently in a spec draft.
    5233           0 :           // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/)
    5234           0 :           var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset);
    5235           0 :           var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset);
    5236           0 :           if (event.type == 'touchstart' ||
    5237           0 :               event.type == 'touchend' ||
    5238           0 :               event.type == 'touchmove') {
    5239           0 :             var t = event.touches.item(0);
    5240           0 :             if (t) {
    5241           0 :               x = t.pageX - (scrollX + rect.left);
    5242           0 :               y = t.pageY - (scrollY + rect.top);
    5243           0 :             } else {
    5244           0 :               return;
    5245           0 :             }
    5246           0 :           } else {
    5247           0 :             x = event.pageX - (scrollX + rect.left);
    5248           0 :             y = event.pageY - (scrollY + rect.top);
    5249           0 :           }
    5250           0 : 
    5251           0 :           // the canvas might be CSS-scaled compared to its backbuffer;
    5252           0 :           // SDL-using content will want mouse coordinates in terms
    5253           0 :           // of backbuffer units.
    5254           0 :           var cw = Module["canvas"].width;
    5255           0 :           var ch = Module["canvas"].height;
    5256           0 :           x = x * (cw / rect.width);
    5257           0 :           y = y * (ch / rect.height);
    5258           0 : 
    5259           0 :           Browser.mouseMovementX = x - Browser.mouseX;
    5260           0 :           Browser.mouseMovementY = y - Browser.mouseY;
    5261           0 :           Browser.mouseX = x;
    5262           0 :           Browser.mouseY = y;
    5263           0 :         }
    5264           1 :       },xhrLoad:function (url, onload, onerror) {
    5265           0 :         var xhr = new XMLHttpRequest();
    5266           0 :         xhr.open('GET', url, true);
    5267           0 :         xhr.responseType = 'arraybuffer';
    5268           0 :         xhr.onload = function xhr_onload() {
    5269           0 :           if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
    5270           0 :             onload(xhr.response);
    5271           0 :           } else {
    5272           0 :             onerror();
    5273           0 :           }
    5274           0 :         };
    5275           0 :         xhr.onerror = onerror;
    5276           0 :         xhr.send(null);
    5277           1 :       },asyncLoad:function (url, onload, onerror, noRunDep) {
    5278           0 :         Browser.xhrLoad(url, function(arrayBuffer) {
    5279           0 :           assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
    5280           0 :           onload(new Uint8Array(arrayBuffer));
    5281           0 :           if (!noRunDep) removeRunDependency('al ' + url);
    5282           0 :         }, function(event) {
    5283           0 :           if (onerror) {
    5284           0 :             onerror();
    5285           0 :           } else {
    5286           0 :             throw 'Loading data file "' + url + '" failed.';
    5287           0 :           }
    5288           0 :         });
    5289           0 :         if (!noRunDep) addRunDependency('al ' + url);
    5290           1 :       },resizeListeners:[],updateResizeListeners:function () {
    5291           0 :         var canvas = Module['canvas'];
    5292           0 :         Browser.resizeListeners.forEach(function(listener) {
    5293           0 :           listener(canvas.width, canvas.height);
    5294           0 :         });
    5295           1 :       },setCanvasSize:function (width, height, noUpdates) {
    5296           0 :         var canvas = Module['canvas'];
    5297           0 :         Browser.updateCanvasDimensions(canvas, width, height);
    5298           0 :         if (!noUpdates) Browser.updateResizeListeners();
    5299           1 :       },windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function () {
    5300           0 :         // check if SDL is available
    5301           0 :         if (typeof SDL != "undefined") {
    5302           0 :           var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
    5303           0 :           flags = flags | 0x00800000; // set SDL_FULLSCREEN flag
    5304           0 :           HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
    5305           0 :         }
    5306           0 :         Browser.updateResizeListeners();
    5307           1 :       },setWindowedCanvasSize:function () {
    5308           0 :         // check if SDL is available
    5309           0 :         if (typeof SDL != "undefined") {
    5310           0 :           var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
    5311           0 :           flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag
    5312           0 :           HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
    5313           0 :         }
    5314           0 :         Browser.updateResizeListeners();
    5315           1 :       },updateCanvasDimensions:function (canvas, wNative, hNative) {
    5316           0 :         if (wNative && hNative) {
    5317           0 :           canvas.widthNative = wNative;
    5318           0 :           canvas.heightNative = hNative;
    5319           0 :         } else {
    5320           0 :           wNative = canvas.widthNative;
    5321           0 :           hNative = canvas.heightNative;
    5322           0 :         }
    5323           0 :         var w = wNative;
    5324           0 :         var h = hNative;
    5325           0 :         if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) {
    5326           0 :           if (w/h < Module['forcedAspectRatio']) {
    5327           0 :             w = Math.round(h * Module['forcedAspectRatio']);
    5328           0 :           } else {
    5329           0 :             h = Math.round(w / Module['forcedAspectRatio']);
    5330           0 :           }
    5331           0 :         }
    5332           0 :         if (((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
    5333           0 :              document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
    5334           0 :              document['fullScreenElement'] || document['fullscreenElement'] ||
    5335           0 :              document['msFullScreenElement'] || document['msFullscreenElement'] ||
    5336           0 :              document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) {
    5337           0 :            var factor = Math.min(screen.width / w, screen.height / h);
    5338           0 :            w = Math.round(w * factor);
    5339           0 :            h = Math.round(h * factor);
    5340           0 :         }
    5341           0 :         if (Browser.resizeCanvas) {
    5342           0 :           if (canvas.width  != w) canvas.width  = w;
    5343           0 :           if (canvas.height != h) canvas.height = h;
    5344           0 :           if (typeof canvas.style != 'undefined') {
    5345           0 :             canvas.style.removeProperty( "width");
    5346           0 :             canvas.style.removeProperty("height");
    5347           0 :           }
    5348           0 :         } else {
    5349           0 :           if (canvas.width  != wNative) canvas.width  = wNative;
    5350           0 :           if (canvas.height != hNative) canvas.height = hNative;
    5351           0 :           if (typeof canvas.style != 'undefined') {
    5352           0 :             if (w != wNative || h != hNative) {
    5353           0 :               canvas.style.setProperty( "width", w + "px", "important");
    5354           0 :               canvas.style.setProperty("height", h + "px", "important");
    5355           0 :             } else {
    5356           0 :               canvas.style.removeProperty( "width");
    5357           0 :               canvas.style.removeProperty("height");
    5358           0 :             }
    5359           0 :           }
    5360           0 :         }
    5361           1 :       }};
    5362           1 : 
    5363           1 :   function _log10(x) {
    5364           0 :       return Math.log(x) / Math.LN10;
    5365           1 :     }
    5366           1 : 
    5367          35 :   function _isspace(chr) {
    5368          35 :       return (chr == 32) || (chr >= 9 && chr <= 13);
    5369          35 :     }
    5370           1 : 
    5371           1 : 
    5372           1 :   var ___tm_current=allocate(44, "i8", ALLOC_STATIC);
    5373           1 : 
    5374           1 : 
    5375           1 :   var ___tm_timezone=allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC);function _localtime_r(time, tmPtr) {
    5376           0 :       _tzset();
    5377           0 :       var date = new Date(HEAP32[((time)>>2)]*1000);
    5378           0 :       HEAP32[((tmPtr)>>2)]=date.getSeconds();
    5379           0 :       HEAP32[(((tmPtr)+(4))>>2)]=date.getMinutes();
    5380           0 :       HEAP32[(((tmPtr)+(8))>>2)]=date.getHours();
    5381           0 :       HEAP32[(((tmPtr)+(12))>>2)]=date.getDate();
    5382           0 :       HEAP32[(((tmPtr)+(16))>>2)]=date.getMonth();
    5383           0 :       HEAP32[(((tmPtr)+(20))>>2)]=date.getFullYear()-1900;
    5384           0 :       HEAP32[(((tmPtr)+(24))>>2)]=date.getDay();
    5385           0 : 
    5386           0 :       var start = new Date(date.getFullYear(), 0, 1);
    5387           0 :       var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));
    5388           0 :       HEAP32[(((tmPtr)+(28))>>2)]=yday;
    5389           0 :       HEAP32[(((tmPtr)+(36))>>2)]=start.getTimezoneOffset() * 60;
    5390           0 : 
    5391           0 :       var dst = Number(start.getTimezoneOffset() != date.getTimezoneOffset());
    5392           0 :       HEAP32[(((tmPtr)+(32))>>2)]=dst;
    5393           0 : 
    5394           0 :       HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone;
    5395           0 : 
    5396           0 :       return tmPtr;
    5397           1 :     }function _localtime(time) {
    5398           0 :       return _localtime_r(time, ___tm_current);
    5399           1 :     }
    5400           1 : 
    5401           1 :   function _srand(seed) {
    5402           0 :       HEAP32[((___rand_seed)>>2)]=seed
    5403           1 :     }
    5404           1 : 
    5405           1 :   var _emscripten_prep_setjmp=true;
    5406           1 : 
    5407           1 : 
    5408           1 : 
    5409           1 : 
    5410           1 :   Module["_testSetjmp"] = _testSetjmp;function _longjmp(env, value) {
    5411           0 :       asm['setThrew'](env, value || 1);
    5412           0 :       throw 'longjmp';
    5413           1 :     }function _emscripten_longjmp(env, value) {
    5414           0 :       _longjmp(env, value);
    5415           1 :     }
    5416           1 : 
    5417           1 :   var _ceil=Math_ceil;
    5418           1 : 
    5419           1 : 
    5420           1 :   function _emscripten_memcpy_big(dest, src, num) {
    5421           0 :       HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
    5422           0 :       return dest;
    5423           1 :     }
    5424           1 :   Module["_memcpy"] = _memcpy;
    5425           1 : 
    5426           1 :   var _llvm_pow_f64=Math_pow;
    5427           1 : 
    5428           1 : 
    5429           1 : 
    5430           1 :   Module["_strlen"] = _strlen;function _fputs(s, stream) {
    5431           0 :       // int fputs(const char *restrict s, FILE *restrict stream);
    5432           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputs.html
    5433           0 :       var fd = _fileno(stream);
    5434           0 :       return _write(fd, s, _strlen(s));
    5435           1 :     }
    5436           1 : 
    5437         224 :   function _sbrk(bytes) {
    5438         224 :       // Implement a Linux-like 'memory area' for our 'process'.
    5439         224 :       // Changes the size of the memory area by |bytes|; returns the
    5440         224 :       // address of the previous top ('break') of the memory area
    5441         224 :       // We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
    5442         224 :       var self = _sbrk;
    5443         224 :       if (!self.called) {
    5444         224 :         DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
    5445         224 :         self.called = true;
    5446         224 :         assert(Runtime.dynamicAlloc);
    5447         224 :         self.alloc = Runtime.dynamicAlloc;
    5448         224 :         Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') };
    5449         224 :       }
    5450         224 :       var ret = DYNAMICTOP;
    5451         224 :       if (bytes != 0) self.alloc(bytes);
    5452         224 :       return ret;  // Previous break location.
    5453         224 :     }
    5454           1 : 
    5455           1 : 
    5456           1 :   function _sinh(x) {
    5457           0 :       var p = Math.pow(Math.E, x);
    5458           0 :       return (p - (1 / p)) / 2;
    5459           1 :     }
    5460           1 : 
    5461           1 :   function _cosh(x) {
    5462           0 :       var p = Math.pow(Math.E, x);
    5463           0 :       return (p + (1 / p)) / 2;
    5464           1 :     }function _tanh(x) {
    5465           0 :       return _sinh(x) / _cosh(x);
    5466           1 :     }
    5467           1 : 
    5468           2 :   function _signal(sig, func) {
    5469           2 :       // TODO
    5470           2 :       return 0;
    5471           2 :     }
    5472           1 : 
    5473           1 : 
    5474           1 : 
    5475           1 :   function __getFloat(text) {
    5476           0 :       return /^[+-]?[0-9]*\.?[0-9]+([eE][+-]?[0-9]+)?/.exec(text);
    5477           1 :     }function __scanString(format, get, unget, varargs) {
    5478           0 :       if (!__scanString.whiteSpace) {
    5479           0 :         __scanString.whiteSpace = {};
    5480           0 :         __scanString.whiteSpace[32] = 1;
    5481           0 :         __scanString.whiteSpace[9] = 1;
    5482           0 :         __scanString.whiteSpace[10] = 1;
    5483           0 :         __scanString.whiteSpace[11] = 1;
    5484           0 :         __scanString.whiteSpace[12] = 1;
    5485           0 :         __scanString.whiteSpace[13] = 1;
    5486           0 :       }
    5487           0 :       // Supports %x, %4x, %d.%d, %lld, %s, %f, %lf.
    5488           0 :       // TODO: Support all format specifiers.
    5489           0 :       format = Pointer_stringify(format);
    5490           0 :       var soFar = 0;
    5491           0 :       if (format.indexOf('%n') >= 0) {
    5492           0 :         // need to track soFar
    5493           0 :         var _get = get;
    5494           0 :         get = function get() {
    5495           0 :           soFar++;
    5496           0 :           return _get();
    5497           0 :         }
    5498           0 :         var _unget = unget;
    5499           0 :         unget = function unget() {
    5500           0 :           soFar--;
    5501           0 :           return _unget();
    5502           0 :         }
    5503           0 :       }
    5504           0 :       var formatIndex = 0;
    5505           0 :       var argsi = 0;
    5506           0 :       var fields = 0;
    5507           0 :       var argIndex = 0;
    5508           0 :       var next;
    5509           0 : 
    5510           0 :       mainLoop:
    5511           0 :       for (var formatIndex = 0; formatIndex < format.length;) {
    5512           0 :         if (format[formatIndex] === '%' && format[formatIndex+1] == 'n') {
    5513           0 :           var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
    5514           0 :           argIndex += Runtime.getAlignSize('void*', null, true);
    5515           0 :           HEAP32[((argPtr)>>2)]=soFar;
    5516           0 :           formatIndex += 2;
    5517           0 :           continue;
    5518           0 :         }
    5519           0 : 
    5520           0 :         if (format[formatIndex] === '%') {
    5521           0 :           var nextC = format.indexOf('c', formatIndex+1);
    5522           0 :           if (nextC > 0) {
    5523           0 :             var maxx = 1;
    5524           0 :             if (nextC > formatIndex+1) {
    5525           0 :               var sub = format.substring(formatIndex+1, nextC);
    5526           0 :               maxx = parseInt(sub);
    5527           0 :               if (maxx != sub) maxx = 0;
    5528           0 :             }
    5529           0 :             if (maxx) {
    5530           0 :               var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
    5531           0 :               argIndex += Runtime.getAlignSize('void*', null, true);
    5532           0 :               fields++;
    5533           0 :               for (var i = 0; i < maxx; i++) {
    5534           0 :                 next = get();
    5535           0 :                 HEAP8[((argPtr++)|0)]=next;
    5536           0 :                 if (next === 0) return i > 0 ? fields : fields-1; // we failed to read the full length of this field
    5537           0 :               }
    5538           0 :               formatIndex += nextC - formatIndex + 1;
    5539           0 :               continue;
    5540           0 :             }
    5541           0 :           }
    5542           0 :         }
    5543           0 : 
    5544           0 :         // handle %[...]
    5545           0 :         if (format[formatIndex] === '%' && format.indexOf('[', formatIndex+1) > 0) {
    5546           0 :           var match = /\%([0-9]*)\[(\^)?(\]?[^\]]*)\]/.exec(format.substring(formatIndex));
    5547           0 :           if (match) {
    5548           0 :             var maxNumCharacters = parseInt(match[1]) || Infinity;
    5549           0 :             var negateScanList = (match[2] === '^');
    5550           0 :             var scanList = match[3];
    5551           0 : 
    5552           0 :             // expand "middle" dashs into character sets
    5553           0 :             var middleDashMatch;
    5554           0 :             while ((middleDashMatch = /([^\-])\-([^\-])/.exec(scanList))) {
    5555           0 :               var rangeStartCharCode = middleDashMatch[1].charCodeAt(0);
    5556           0 :               var rangeEndCharCode = middleDashMatch[2].charCodeAt(0);
    5557           0 :               for (var expanded = ''; rangeStartCharCode <= rangeEndCharCode; expanded += String.fromCharCode(rangeStartCharCode++));
    5558           0 :               scanList = scanList.replace(middleDashMatch[1] + '-' + middleDashMatch[2], expanded);
    5559           0 :             }
    5560           0 : 
    5561           0 :             var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
    5562           0 :             argIndex += Runtime.getAlignSize('void*', null, true);
    5563           0 :             fields++;
    5564           0 : 
    5565           0 :             for (var i = 0; i < maxNumCharacters; i++) {
    5566           0 :               next = get();
    5567           0 :               if (negateScanList) {
    5568           0 :                 if (scanList.indexOf(String.fromCharCode(next)) < 0) {
    5569           0 :                   HEAP8[((argPtr++)|0)]=next;
    5570           0 :                 } else {
    5571           0 :                   unget();
    5572           0 :                   break;
    5573           0 :                 }
    5574           0 :               } else {
    5575           0 :                 if (scanList.indexOf(String.fromCharCode(next)) >= 0) {
    5576           0 :                   HEAP8[((argPtr++)|0)]=next;
    5577           0 :                 } else {
    5578           0 :                   unget();
    5579           0 :                   break;
    5580           0 :                 }
    5581           0 :               }
    5582           0 :             }
    5583           0 : 
    5584           0 :             // write out null-terminating character
    5585           0 :             HEAP8[((argPtr++)|0)]=0;
    5586           0 :             formatIndex += match[0].length;
    5587           0 : 
    5588           0 :             continue;
    5589           0 :           }
    5590           0 :         }
    5591           0 :         // remove whitespace
    5592           0 :         while (1) {
    5593           0 :           next = get();
    5594           0 :           if (next == 0) return fields;
    5595           0 :           if (!(next in __scanString.whiteSpace)) break;
    5596           0 :         }
    5597           0 :         unget();
    5598           0 : 
    5599           0 :         if (format[formatIndex] === '%') {
    5600           0 :           formatIndex++;
    5601           0 :           var suppressAssignment = false;
    5602           0 :           if (format[formatIndex] == '*') {
    5603           0 :             suppressAssignment = true;
    5604           0 :             formatIndex++;
    5605           0 :           }
    5606           0 :           var maxSpecifierStart = formatIndex;
    5607           0 :           while (format[formatIndex].charCodeAt(0) >= 48 &&
    5608           0 :                  format[formatIndex].charCodeAt(0) <= 57) {
    5609           0 :             formatIndex++;
    5610           0 :           }
    5611           0 :           var max_;
    5612           0 :           if (formatIndex != maxSpecifierStart) {
    5613           0 :             max_ = parseInt(format.slice(maxSpecifierStart, formatIndex), 10);
    5614           0 :           }
    5615           0 :           var long_ = false;
    5616           0 :           var half = false;
    5617           0 :           var longLong = false;
    5618           0 :           if (format[formatIndex] == 'l') {
    5619           0 :             long_ = true;
    5620           0 :             formatIndex++;
    5621           0 :             if (format[formatIndex] == 'l') {
    5622           0 :               longLong = true;
    5623           0 :               formatIndex++;
    5624           0 :             }
    5625           0 :           } else if (format[formatIndex] == 'h') {
    5626           0 :             half = true;
    5627           0 :             formatIndex++;
    5628           0 :           }
    5629           0 :           var type = format[formatIndex];
    5630           0 :           formatIndex++;
    5631           0 :           var curr = 0;
    5632           0 :           var buffer = [];
    5633           0 :           // Read characters according to the format. floats are trickier, they may be in an unfloat state in the middle, then be a valid float later
    5634           0 :           if (type == 'f' || type == 'e' || type == 'g' ||
    5635           0 :               type == 'F' || type == 'E' || type == 'G') {
    5636           0 :             next = get();
    5637           0 :             while (next > 0 && (!(next in __scanString.whiteSpace)))  {
    5638           0 :               buffer.push(String.fromCharCode(next));
    5639           0 :               next = get();
    5640           0 :             }
    5641           0 :             var m = __getFloat(buffer.join(''));
    5642           0 :             var last = m ? m[0].length : 0;
    5643           0 :             for (var i = 0; i < buffer.length - last + 1; i++) {
    5644           0 :               unget();
    5645           0 :             }
    5646           0 :             buffer.length = last;
    5647           0 :           } else {
    5648           0 :             next = get();
    5649           0 :             var first = true;
    5650           0 : 
    5651           0 :             // Strip the optional 0x prefix for %x.
    5652           0 :             if ((type == 'x' || type == 'X') && (next == 48)) {
    5653           0 :               var peek = get();
    5654           0 :               if (peek == 120 || peek == 88) {
    5655           0 :                 next = get();
    5656           0 :               } else {
    5657           0 :                 unget();
    5658           0 :               }
    5659           0 :             }
    5660           0 : 
    5661           0 :             while ((curr < max_ || isNaN(max_)) && next > 0) {
    5662           0 :               if (!(next in __scanString.whiteSpace) && // stop on whitespace
    5663           0 :                   (type == 's' ||
    5664           0 :                    ((type === 'd' || type == 'u' || type == 'i') && ((next >= 48 && next <= 57) ||
    5665           0 :                                                                      (first && next == 45))) ||
    5666           0 :                    ((type === 'x' || type === 'X') && (next >= 48 && next <= 57 ||
    5667           0 :                                      next >= 97 && next <= 102 ||
    5668           0 :                                      next >= 65 && next <= 70))) &&
    5669           0 :                   (formatIndex >= format.length || next !== format[formatIndex].charCodeAt(0))) { // Stop when we read something that is coming up
    5670           0 :                 buffer.push(String.fromCharCode(next));
    5671           0 :                 next = get();
    5672           0 :                 curr++;
    5673           0 :                 first = false;
    5674           0 :               } else {
    5675           0 :                 break;
    5676           0 :               }
    5677           0 :             }
    5678           0 :             unget();
    5679           0 :           }
    5680           0 :           if (buffer.length === 0) return 0;  // Failure.
    5681           0 :           if (suppressAssignment) continue;
    5682           0 : 
    5683           0 :           var text = buffer.join('');
    5684           0 :           var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
    5685           0 :           argIndex += Runtime.getAlignSize('void*', null, true);
    5686           0 :           switch (type) {
    5687           0 :             case 'd': case 'u': case 'i':
    5688           0 :               if (half) {
    5689           0 :                 HEAP16[((argPtr)>>1)]=parseInt(text, 10);
    5690           0 :               } else if (longLong) {
    5691           0 :                 (tempI64 = [parseInt(text, 10)>>>0,(tempDouble=parseInt(text, 10),(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((argPtr)>>2)]=tempI64[0],HEAP32[(((argPtr)+(4))>>2)]=tempI64[1]);
    5692           0 :               } else {
    5693           0 :                 HEAP32[((argPtr)>>2)]=parseInt(text, 10);
    5694           0 :               }
    5695           0 :               break;
    5696           0 :             case 'X':
    5697           0 :             case 'x':
    5698           0 :               HEAP32[((argPtr)>>2)]=parseInt(text, 16);
    5699           0 :               break;
    5700           0 :             case 'F':
    5701           0 :             case 'f':
    5702           0 :             case 'E':
    5703           0 :             case 'e':
    5704           0 :             case 'G':
    5705           0 :             case 'g':
    5706           0 :             case 'E':
    5707           0 :               // fallthrough intended
    5708           0 :               if (long_) {
    5709           0 :                 HEAPF64[((argPtr)>>3)]=parseFloat(text);
    5710           0 :               } else {
    5711           0 :                 HEAPF32[((argPtr)>>2)]=parseFloat(text);
    5712           0 :               }
    5713           0 :               break;
    5714           0 :             case 's':
    5715           0 :               var array = intArrayFromString(text);
    5716           0 :               for (var j = 0; j < array.length; j++) {
    5717           0 :                 HEAP8[(((argPtr)+(j))|0)]=array[j];
    5718           0 :               }
    5719           0 :               break;
    5720           0 :           }
    5721           0 :           fields++;
    5722           0 :         } else if (format[formatIndex].charCodeAt(0) in __scanString.whiteSpace) {
    5723           0 :           next = get();
    5724           0 :           while (next in __scanString.whiteSpace) {
    5725           0 :             if (next <= 0) break mainLoop;  // End of input.
    5726           0 :             next = get();
    5727           0 :           }
    5728           0 :           unget(next);
    5729           0 :           formatIndex++;
    5730           0 :         } else {
    5731           0 :           // Not a specifier.
    5732           0 :           next = get();
    5733           0 :           if (format[formatIndex].charCodeAt(0) !== next) {
    5734           0 :             unget(next);
    5735           0 :             break mainLoop;
    5736           0 :           }
    5737           0 :           formatIndex++;
    5738           0 :         }
    5739           0 :       }
    5740           0 :       return fields;
    5741           1 :     }
    5742           1 : 
    5743           1 :   function _fgetc(stream) {
    5744           1 :       // int fgetc(FILE *stream);
    5745           1 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fgetc.html
    5746           1 :       var streamObj = FS.getStreamFromPtr(stream);
    5747           1 :       if (!streamObj) return -1;
    5748           1 :       if (streamObj.eof || streamObj.error) return -1;
    5749           1 :       var ret = _fread(_fgetc.ret, 1, 1, stream);
    5750           1 :       if (ret == 0) {
    5751           1 :         return -1;
    5752           1 :       } else if (ret == -1) {
    5753           1 :         streamObj.error = true;
    5754           1 :         return -1;
    5755           1 :       } else {
    5756           1 :         return HEAPU8[((_fgetc.ret)|0)];
    5757           1 :       }
    5758           1 :     }
    5759           1 : 
    5760           1 :   function _ungetc(c, stream) {
    5761           0 :       // int ungetc(int c, FILE *stream);
    5762           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/ungetc.html
    5763           0 :       stream = FS.getStreamFromPtr(stream);
    5764           0 :       if (!stream) {
    5765           0 :         return -1;
    5766           0 :       }
    5767           0 :       if (c === -1) {
    5768           0 :         // do nothing for EOF character
    5769           0 :         return c;
    5770           0 :       }
    5771           0 :       c = unSign(c & 0xFF);
    5772           0 :       stream.ungotten.push(c);
    5773           0 :       stream.eof = false;
    5774           0 :       return c;
    5775           1 :     }function _fscanf(stream, format, varargs) {
    5776           0 :       // int fscanf(FILE *restrict stream, const char *restrict format, ... );
    5777           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/scanf.html
    5778           0 :       var streamObj = FS.getStreamFromPtr(stream);
    5779           0 :       if (!streamObj) {
    5780           0 :         return -1;
    5781           0 :       }
    5782           0 :       var buffer = [];
    5783           0 :       function get() {
    5784           0 :         var c = _fgetc(stream);
    5785           0 :         buffer.push(c);
    5786           0 :         return c;
    5787           0 :       };
    5788           0 :       function unget() {
    5789           0 :         _ungetc(buffer.pop(), stream);
    5790           0 :       };
    5791           0 :       return __scanString(format, get, unget, varargs);
    5792           1 :     }
    5793           1 : 
    5794           1 :   var _emscripten_preinvoke=true;
    5795           1 : 
    5796           1 :   function _localeconv() {
    5797           0 :       // %struct.timeval = type { char* decimal point, other stuff... }
    5798           0 :       // var indexes = Runtime.calculateStructAlignment({ fields: ['i32', 'i32'] });
    5799           0 :       var me = _localeconv;
    5800           0 :       if (!me.ret) {
    5801           0 :       // These are defaults from the "C" locale
    5802           0 :         me.ret = allocate([
    5803           0 :           allocate(intArrayFromString('.'), 'i8', ALLOC_NORMAL),0,0,0, // decimal_point
    5804           0 :           allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // thousands_sep
    5805           0 :           allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // grouping
    5806           0 :           allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // int_curr_symbol
    5807           0 :           allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // currency_symbol
    5808           0 :           allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_decimal_point
    5809           0 :           allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_thousands_sep
    5810           0 :           allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_grouping
    5811           0 :           allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // positive_sign
    5812           0 :           allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0 // negative_sign
    5813           0 :         ], 'i8*', ALLOC_NORMAL); // Allocate strings in lconv, still don't allocate chars
    5814           0 :       }
    5815           0 :       return me.ret;
    5816           1 :     }
    5817           1 : 
    5818           1 : 
    5819           1 :   function _unlink(path) {
    5820           0 :       // int unlink(const char *path);
    5821           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/unlink.html
    5822           0 :       path = Pointer_stringify(path);
    5823           0 :       try {
    5824           0 :         FS.unlink(path);
    5825           0 :         return 0;
    5826           0 :       } catch (e) {
    5827           0 :         FS.handleFSError(e);
    5828           0 :         return -1;
    5829           0 :       }
    5830           1 :     }
    5831           1 : 
    5832           1 :   function _rmdir(path) {
    5833           0 :       // int rmdir(const char *path);
    5834           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/rmdir.html
    5835           0 :       path = Pointer_stringify(path);
    5836           0 :       try {
    5837           0 :         FS.rmdir(path);
    5838           0 :         return 0;
    5839           0 :       } catch (e) {
    5840           0 :         FS.handleFSError(e);
    5841           0 :         return -1;
    5842           0 :       }
    5843           1 :     }function _remove(path) {
    5844           0 :       // int remove(const char *path);
    5845           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/remove.html
    5846           0 :       var ret = _unlink(path);
    5847           0 :       if (ret == -1) ret = _rmdir(path);
    5848           0 :       return ret;
    5849           1 :     }
    5850           1 : 
    5851           1 :   function _freopen(filename, mode, stream) {
    5852           0 :       // FILE *freopen(const char *restrict filename, const char *restrict mode, FILE *restrict stream);
    5853           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/freopen.html
    5854           0 :       if (!filename) {
    5855           0 :         var streamObj = FS.getStreamFromPtr(stream);
    5856           0 :         if (!streamObj) {
    5857           0 :           ___setErrNo(ERRNO_CODES.EBADF);
    5858           0 :           return 0;
    5859           0 :         }
    5860           0 :         if (_freopen.buffer) _free(_freopen.buffer);
    5861           0 :         filename = intArrayFromString(streamObj.path);
    5862           0 :         filename = allocate(filename, 'i8', ALLOC_NORMAL);
    5863           0 :       }
    5864           0 :       _fclose(stream);
    5865           0 :       return _fopen(filename, mode);
    5866           1 :     }
    5867           1 : 
    5868           1 : 
    5869           1 :   function _rename(old_path, new_path) {
    5870           0 :       // int rename(const char *old, const char *new);
    5871           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/rename.html
    5872           0 :       old_path = Pointer_stringify(old_path);
    5873           0 :       new_path = Pointer_stringify(new_path);
    5874           0 :       try {
    5875           0 :         FS.rename(old_path, new_path);
    5876           0 :         return 0;
    5877           0 :       } catch (e) {
    5878           0 :         FS.handleFSError(e);
    5879           0 :         return -1;
    5880           0 :       }
    5881           1 :     }
    5882           1 : 
    5883           1 :   function _tmpfile() {
    5884           0 :       // FILE *tmpfile(void);
    5885           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/tmpfile.html
    5886           0 :       // TODO: Delete the created file on closing.
    5887           0 :       if (_tmpfile.mode) {
    5888           0 :         _tmpfile.mode = allocate(intArrayFromString('w+'), 'i8', ALLOC_NORMAL);
    5889           0 :       }
    5890           0 :       return _fopen(_tmpnam(0), _tmpfile.mode);
    5891           1 :     }
    5892           1 : 
    5893           1 :   function _sysconf(name) {
    5894           1 :       // long sysconf(int name);
    5895           1 :       // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
    5896           1 :       switch(name) {
    5897           1 :         case 30: return PAGE_SIZE;
    5898           1 :         case 132:
    5899           1 :         case 133:
    5900           1 :         case 12:
    5901           1 :         case 137:
    5902           1 :         case 138:
    5903           1 :         case 15:
    5904           1 :         case 235:
    5905           1 :         case 16:
    5906           1 :         case 17:
    5907           1 :         case 18:
    5908           1 :         case 19:
    5909           1 :         case 20:
    5910           1 :         case 149:
    5911           1 :         case 13:
    5912           1 :         case 10:
    5913           1 :         case 236:
    5914           1 :         case 153:
    5915           1 :         case 9:
    5916           1 :         case 21:
    5917           1 :         case 22:
    5918           1 :         case 159:
    5919           1 :         case 154:
    5920           1 :         case 14:
    5921           1 :         case 77:
    5922           1 :         case 78:
    5923           1 :         case 139:
    5924           1 :         case 80:
    5925           1 :         case 81:
    5926           1 :         case 79:
    5927           1 :         case 82:
    5928           1 :         case 68:
    5929           1 :         case 67:
    5930           1 :         case 164:
    5931           1 :         case 11:
    5932           1 :         case 29:
    5933           1 :         case 47:
    5934           1 :         case 48:
    5935           1 :         case 95:
    5936           1 :         case 52:
    5937           1 :         case 51:
    5938           1 :         case 46:
    5939           1 :           return 200809;
    5940           1 :         case 27:
    5941           1 :         case 246:
    5942           1 :         case 127:
    5943           1 :         case 128:
    5944           1 :         case 23:
    5945           1 :         case 24:
    5946           1 :         case 160:
    5947           1 :         case 161:
    5948           1 :         case 181:
    5949           1 :         case 182:
    5950           1 :         case 242:
    5951           1 :         case 183:
    5952           1 :         case 184:
    5953           1 :         case 243:
    5954           1 :         case 244:
    5955           1 :         case 245:
    5956           1 :         case 165:
    5957           1 :         case 178:
    5958           1 :         case 179:
    5959           1 :         case 49:
    5960           1 :         case 50:
    5961           1 :         case 168:
    5962           1 :         case 169:
    5963           1 :         case 175:
    5964           1 :         case 170:
    5965           1 :         case 171:
    5966           1 :         case 172:
    5967           1 :         case 97:
    5968           1 :         case 76:
    5969           1 :         case 32:
    5970           1 :         case 173:
    5971           1 :         case 35:
    5972           1 :           return -1;
    5973           1 :         case 176:
    5974           1 :         case 177:
    5975           1 :         case 7:
    5976           1 :         case 155:
    5977           1 :         case 8:
    5978           1 :         case 157:
    5979           1 :         case 125:
    5980           1 :         case 126:
    5981           1 :         case 92:
    5982           1 :         case 93:
    5983           1 :         case 129:
    5984           1 :         case 130:
    5985           1 :         case 131:
    5986           1 :         case 94:
    5987           1 :         case 91:
    5988           1 :           return 1;
    5989           1 :         case 74:
    5990           1 :         case 60:
    5991           1 :         case 69:
    5992           1 :         case 70:
    5993           1 :         case 4:
    5994           1 :           return 1024;
    5995           1 :         case 31:
    5996           1 :         case 42:
    5997           1 :         case 72:
    5998           1 :           return 32;
    5999           1 :         case 87:
    6000           1 :         case 26:
    6001           1 :         case 33:
    6002           1 :           return 2147483647;
    6003           1 :         case 34:
    6004           1 :         case 1:
    6005           1 :           return 47839;
    6006           1 :         case 38:
    6007           1 :         case 36:
    6008           1 :           return 99;
    6009           1 :         case 43:
    6010           1 :         case 37:
    6011           1 :           return 2048;
    6012           1 :         case 0: return 2097152;
    6013           1 :         case 3: return 65536;
    6014           1 :         case 28: return 32768;
    6015           1 :         case 44: return 32767;
    6016           1 :         case 75: return 16384;
    6017           1 :         case 39: return 1000;
    6018           1 :         case 89: return 700;
    6019           1 :         case 71: return 256;
    6020           1 :         case 40: return 255;
    6021           1 :         case 2: return 100;
    6022           1 :         case 180: return 64;
    6023           1 :         case 25: return 20;
    6024           1 :         case 5: return 16;
    6025           1 :         case 6: return 6;
    6026           1 :         case 73: return 4;
    6027           1 :         case 84: return 1;
    6028           1 :       }
    6029           1 :       ___setErrNo(ERRNO_CODES.EINVAL);
    6030           1 :       return -1;
    6031           1 :     }
    6032           1 : 
    6033           1 : 
    6034           1 :   function ___errno_location() {
    6035           0 :       return ___errno_state;
    6036           1 :     }
    6037           1 : 
    6038           1 : 
    6039           1 :   Module["_memset"] = _memset;
    6040           1 : 
    6041           1 : 
    6042           1 : 
    6043           1 :   Module["_bitshift64Shl"] = _bitshift64Shl;
    6044           1 : 
    6045           1 :   function _abort() {
    6046           0 :       Module['abort']();
    6047           1 :     }
    6048           1 : 
    6049           1 : 
    6050           1 : 
    6051           1 :   function __reallyNegative(x) {
    6052           0 :       return x < 0 || (x === 0 && (1/x) === -Infinity);
    6053          13 :     }function __formatString(format, varargs) {
    6054          13 :       var textIndex = format;
    6055          13 :       var argIndex = 0;
    6056          13 :       function getNextArg(type) {
    6057          13 :         // NOTE: Explicitly ignoring type safety. Otherwise this fails:
    6058          13 :         //       int x = 4; printf("%c\n", (char)x);
    6059          13 :         var ret;
    6060          13 :         if (type === 'double') {
    6061          13 :           ret = HEAPF64[(((varargs)+(argIndex))>>3)];
    6062          13 :         } else if (type == 'i64') {
    6063          13 :           ret = [HEAP32[(((varargs)+(argIndex))>>2)],
    6064          13 :                  HEAP32[(((varargs)+(argIndex+4))>>2)]];
    6065          13 : 
    6066          13 :         } else {
    6067          13 :           type = 'i32'; // varargs are always i32, i64, or double
    6068          13 :           ret = HEAP32[(((varargs)+(argIndex))>>2)];
    6069          13 :         }
    6070          13 :         argIndex += Runtime.getNativeFieldSize(type);
    6071          13 :         return ret;
    6072          13 :       }
    6073          13 : 
    6074          13 :       var ret = [];
    6075          13 :       var curr, next, currArg;
    6076          13 :       while(1) {
    6077          13 :         var startTextIndex = textIndex;
    6078          13 :         curr = HEAP8[(textIndex)];
    6079          13 :         if (curr === 0) break;
    6080          13 :         next = HEAP8[((textIndex+1)|0)];
    6081          13 :         if (curr == 37) {
    6082          13 :           // Handle flags.
    6083          13 :           var flagAlwaysSigned = false;
    6084          13 :           var flagLeftAlign = false;
    6085          13 :           var flagAlternative = false;
    6086          13 :           var flagZeroPad = false;
    6087          13 :           var flagPadSign = false;
    6088          13 :           flagsLoop: while (1) {
    6089          13 :             switch (next) {
    6090          13 :               case 43:
    6091          13 :                 flagAlwaysSigned = true;
    6092          13 :                 break;
    6093          13 :               case 45:
    6094          13 :                 flagLeftAlign = true;
    6095          13 :                 break;
    6096          13 :               case 35:
    6097          13 :                 flagAlternative = true;
    6098          13 :                 break;
    6099          13 :               case 48:
    6100          13 :                 if (flagZeroPad) {
    6101          13 :                   break flagsLoop;
    6102          13 :                 } else {
    6103          13 :                   flagZeroPad = true;
    6104          13 :                   break;
    6105          13 :                 }
    6106          13 :               case 32:
    6107          13 :                 flagPadSign = true;
    6108          13 :                 break;
    6109          13 :               default:
    6110          13 :                 break flagsLoop;
    6111          13 :             }
    6112          13 :             textIndex++;
    6113          13 :             next = HEAP8[((textIndex+1)|0)];
    6114          13 :           }
    6115          13 : 
    6116          13 :           // Handle width.
    6117          13 :           var width = 0;
    6118          13 :           if (next == 42) {
    6119          13 :             width = getNextArg('i32');
    6120          13 :             textIndex++;
    6121          13 :             next = HEAP8[((textIndex+1)|0)];
    6122          13 :           } else {
    6123          13 :             while (next >= 48 && next <= 57) {
    6124          13 :               width = width * 10 + (next - 48);
    6125          13 :               textIndex++;
    6126          13 :               next = HEAP8[((textIndex+1)|0)];
    6127          13 :             }
    6128          13 :           }
    6129          13 : 
    6130          13 :           // Handle precision.
    6131          13 :           var precisionSet = false, precision = -1;
    6132          13 :           if (next == 46) {
    6133          13 :             precision = 0;
    6134          13 :             precisionSet = true;
    6135          13 :             textIndex++;
    6136          13 :             next = HEAP8[((textIndex+1)|0)];
    6137          13 :             if (next == 42) {
    6138          13 :               precision = getNextArg('i32');
    6139          13 :               textIndex++;
    6140          13 :             } else {
    6141          13 :               while(1) {
    6142          13 :                 var precisionChr = HEAP8[((textIndex+1)|0)];
    6143          13 :                 if (precisionChr < 48 ||
    6144          13 :                     precisionChr > 57) break;
    6145          13 :                 precision = precision * 10 + (precisionChr - 48);
    6146          13 :                 textIndex++;
    6147          13 :               }
    6148          13 :             }
    6149          13 :             next = HEAP8[((textIndex+1)|0)];
    6150          13 :           }
    6151          13 :           if (precision < 0) {
    6152          13 :             precision = 6; // Standard default.
    6153          13 :             precisionSet = false;
    6154          13 :           }
    6155          13 : 
    6156          13 :           // Handle integer sizes. WARNING: These assume a 32-bit architecture!
    6157          13 :           var argSize;
    6158          13 :           switch (String.fromCharCode(next)) {
    6159          13 :             case 'h':
    6160          13 :               var nextNext = HEAP8[((textIndex+2)|0)];
    6161          13 :               if (nextNext == 104) {
    6162          13 :                 textIndex++;
    6163          13 :                 argSize = 1; // char (actually i32 in varargs)
    6164          13 :               } else {
    6165          13 :                 argSize = 2; // short (actually i32 in varargs)
    6166          13 :               }
    6167          13 :               break;
    6168          13 :             case 'l':
    6169          13 :               var nextNext = HEAP8[((textIndex+2)|0)];
    6170          13 :               if (nextNext == 108) {
    6171          13 :                 textIndex++;
    6172          13 :                 argSize = 8; // long long
    6173          13 :               } else {
    6174          13 :                 argSize = 4; // long
    6175          13 :               }
    6176          13 :               break;
    6177          13 :             case 'L': // long long
    6178          13 :             case 'q': // int64_t
    6179          13 :             case 'j': // intmax_t
    6180          13 :               argSize = 8;
    6181          13 :               break;
    6182          13 :             case 'z': // size_t
    6183          13 :             case 't': // ptrdiff_t
    6184          13 :             case 'I': // signed ptrdiff_t or unsigned size_t
    6185          13 :               argSize = 4;
    6186          13 :               break;
    6187          13 :             default:
    6188          13 :               argSize = null;
    6189          13 :           }
    6190          13 :           if (argSize) textIndex++;
    6191          13 :           next = HEAP8[((textIndex+1)|0)];
    6192          13 : 
    6193          13 :           // Handle type specifier.
    6194          13 :           switch (String.fromCharCode(next)) {
    6195          13 :             case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': {
    6196          13 :               // Integer.
    6197          13 :               var signed = next == 100 || next == 105;
    6198          13 :               argSize = argSize || 4;
    6199          13 :               var currArg = getNextArg('i' + (argSize * 8));
    6200          13 :               var origArg = currArg;
    6201          13 :               var argText;
    6202          13 :               // Flatten i64-1 [low, high] into a (slightly rounded) double
    6203          13 :               if (argSize == 8) {
    6204          13 :                 currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 117);
    6205          13 :               }
    6206          13 :               // Truncate to requested size.
    6207          13 :               if (argSize <= 4) {
    6208          13 :                 var limit = Math.pow(256, argSize) - 1;
    6209          13 :                 currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8);
    6210          13 :               }
    6211          13 :               // Format the number.
    6212          13 :               var currAbsArg = Math.abs(currArg);
    6213          13 :               var prefix = '';
    6214          13 :               if (next == 100 || next == 105) {
    6215          13 :                 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else
    6216          13 :                 argText = reSign(currArg, 8 * argSize, 1).toString(10);
    6217          13 :               } else if (next == 117) {
    6218          13 :                 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else
    6219          13 :                 argText = unSign(currArg, 8 * argSize, 1).toString(10);
    6220          13 :                 currArg = Math.abs(currArg);
    6221          13 :               } else if (next == 111) {
    6222          13 :                 argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8);
    6223          13 :               } else if (next == 120 || next == 88) {
    6224          13 :                 prefix = (flagAlternative && currArg != 0) ? '0x' : '';
    6225          13 :                 if (argSize == 8 && i64Math) {
    6226          13 :                   if (origArg[1]) {
    6227          13 :                     argText = (origArg[1]>>>0).toString(16);
    6228          13 :                     var lower = (origArg[0]>>>0).toString(16);
    6229          13 :                     while (lower.length < 8) lower = '0' + lower;
    6230          13 :                     argText += lower;
    6231          13 :                   } else {
    6232          13 :                     argText = (origArg[0]>>>0).toString(16);
    6233          13 :                   }
    6234          13 :                 } else
    6235          13 :                 if (currArg < 0) {
    6236          13 :                   // Represent negative numbers in hex as 2's complement.
    6237          13 :                   currArg = -currArg;
    6238          13 :                   argText = (currAbsArg - 1).toString(16);
    6239          13 :                   var buffer = [];
    6240          13 :                   for (var i = 0; i < argText.length; i++) {
    6241          13 :                     buffer.push((0xF - parseInt(argText[i], 16)).toString(16));
    6242          13 :                   }
    6243          13 :                   argText = buffer.join('');
    6244          13 :                   while (argText.length < argSize * 2) argText = 'f' + argText;
    6245          13 :                 } else {
    6246          13 :                   argText = currAbsArg.toString(16);
    6247          13 :                 }
    6248          13 :                 if (next == 88) {
    6249          13 :                   prefix = prefix.toUpperCase();
    6250          13 :                   argText = argText.toUpperCase();
    6251          13 :                 }
    6252          13 :               } else if (next == 112) {
    6253          13 :                 if (currAbsArg === 0) {
    6254          13 :                   argText = '(nil)';
    6255          13 :                 } else {
    6256          13 :                   prefix = '0x';
    6257          13 :                   argText = currAbsArg.toString(16);
    6258          13 :                 }
    6259          13 :               }
    6260          13 :               if (precisionSet) {
    6261          13 :                 while (argText.length < precision) {
    6262          13 :                   argText = '0' + argText;
    6263          13 :                 }
    6264          13 :               }
    6265          13 : 
    6266          13 :               // Add sign if needed
    6267          13 :               if (currArg >= 0) {
    6268          13 :                 if (flagAlwaysSigned) {
    6269          13 :                   prefix = '+' + prefix;
    6270          13 :                 } else if (flagPadSign) {
    6271          13 :                   prefix = ' ' + prefix;
    6272          13 :                 }
    6273          13 :               }
    6274          13 : 
    6275          13 :               // Move sign to prefix so we zero-pad after the sign
    6276          13 :               if (argText.charAt(0) == '-') {
    6277          13 :                 prefix = '-' + prefix;
    6278          13 :                 argText = argText.substr(1);
    6279          13 :               }
    6280          13 : 
    6281          13 :               // Add padding.
    6282          13 :               while (prefix.length + argText.length < width) {
    6283          13 :                 if (flagLeftAlign) {
    6284          13 :                   argText += ' ';
    6285          13 :                 } else {
    6286          13 :                   if (flagZeroPad) {
    6287          13 :                     argText = '0' + argText;
    6288          13 :                   } else {
    6289          13 :                     prefix = ' ' + prefix;
    6290          13 :                   }
    6291          13 :                 }
    6292          13 :               }
    6293          13 : 
    6294          13 :               // Insert the result into the buffer.
    6295          13 :               argText = prefix + argText;
    6296          31 :               argText.split('').forEach(function(chr) {
    6297          31 :                 ret.push(chr.charCodeAt(0));
    6298          31 :               });
    6299          13 :               break;
    6300          13 :             }
    6301          13 :             case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': {
    6302          13 :               // Float.
    6303          13 :               var currArg = getNextArg('double');
    6304          13 :               var argText;
    6305          13 :               if (isNaN(currArg)) {
    6306          13 :                 argText = 'nan';
    6307          13 :                 flagZeroPad = false;
    6308          13 :               } else if (!isFinite(currArg)) {
    6309          13 :                 argText = (currArg < 0 ? '-' : '') + 'inf';
    6310          13 :                 flagZeroPad = false;
    6311          13 :               } else {
    6312          13 :                 var isGeneral = false;
    6313          13 :                 var effectivePrecision = Math.min(precision, 20);
    6314          13 : 
    6315          13 :                 // Convert g/G to f/F or e/E, as per:
    6316          13 :                 // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html
    6317          13 :                 if (next == 103 || next == 71) {
    6318          13 :                   isGeneral = true;
    6319          13 :                   precision = precision || 1;
    6320          13 :                   var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10);
    6321          13 :                   if (precision > exponent && exponent >= -4) {
    6322          13 :                     next = ((next == 103) ? 'f' : 'F').charCodeAt(0);
    6323          13 :                     precision -= exponent + 1;
    6324          13 :                   } else {
    6325          13 :                     next = ((next == 103) ? 'e' : 'E').charCodeAt(0);
    6326          13 :                     precision--;
    6327          13 :                   }
    6328          13 :                   effectivePrecision = Math.min(precision, 20);
    6329          13 :                 }
    6330          13 : 
    6331          13 :                 if (next == 101 || next == 69) {
    6332          13 :                   argText = currArg.toExponential(effectivePrecision);
    6333          13 :                   // Make sure the exponent has at least 2 digits.
    6334          13 :                   if (/[eE][-+]\d$/.test(argText)) {
    6335          13 :                     argText = argText.slice(0, -1) + '0' + argText.slice(-1);
    6336          13 :                   }
    6337          13 :                 } else if (next == 102 || next == 70) {
    6338          13 :                   argText = currArg.toFixed(effectivePrecision);
    6339          13 :                   if (currArg === 0 && __reallyNegative(currArg)) {
    6340          13 :                     argText = '-' + argText;
    6341          13 :                   }
    6342          13 :                 }
    6343          13 : 
    6344          13 :                 var parts = argText.split('e');
    6345          13 :                 if (isGeneral && !flagAlternative) {
    6346          13 :                   // Discard trailing zeros and periods.
    6347          13 :                   while (parts[0].length > 1 && parts[0].indexOf('.') != -1 &&
    6348          13 :                          (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) {
    6349          13 :                     parts[0] = parts[0].slice(0, -1);
    6350          13 :                   }
    6351          13 :                 } else {
    6352          13 :                   // Make sure we have a period in alternative mode.
    6353          13 :                   if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.';
    6354          13 :                   // Zero pad until required precision.
    6355          13 :                   while (precision > effectivePrecision++) parts[0] += '0';
    6356          13 :                 }
    6357          13 :                 argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : '');
    6358          13 : 
    6359          13 :                 // Capitalize 'E' if needed.
    6360          13 :                 if (next == 69) argText = argText.toUpperCase();
    6361          13 : 
    6362          13 :                 // Add sign.
    6363          13 :                 if (currArg >= 0) {
    6364          13 :                   if (flagAlwaysSigned) {
    6365          13 :                     argText = '+' + argText;
    6366          13 :                   } else if (flagPadSign) {
    6367          13 :                     argText = ' ' + argText;
    6368          13 :                   }
    6369          13 :                 }
    6370          13 :               }
    6371          13 : 
    6372          13 :               // Add padding.
    6373          13 :               while (argText.length < width) {
    6374          13 :                 if (flagLeftAlign) {
    6375          13 :                   argText += ' ';
    6376          13 :                 } else {
    6377          13 :                   if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) {
    6378          13 :                     argText = argText[0] + '0' + argText.slice(1);
    6379          13 :                   } else {
    6380          13 :                     argText = (flagZeroPad ? '0' : ' ') + argText;
    6381          13 :                   }
    6382          13 :                 }
    6383          13 :               }
    6384          13 : 
    6385          13 :               // Adjust case.
    6386          13 :               if (next < 97) argText = argText.toUpperCase();
    6387          13 : 
    6388          13 :               // Insert the result into the buffer.
    6389          13 :               argText.split('').forEach(function(chr) {
    6390           0 :                 ret.push(chr.charCodeAt(0));
    6391          13 :               });
    6392          13 :               break;
    6393          13 :             }
    6394          13 :             case 's': {
    6395          13 :               // String.
    6396          13 :               var arg = getNextArg('i8*');
    6397          13 :               var argLength = arg ? _strlen(arg) : '(null)'.length;
    6398          13 :               if (precisionSet) argLength = Math.min(argLength, precision);
    6399          13 :               if (!flagLeftAlign) {
    6400          13 :                 while (argLength < width--) {
    6401          13 :                   ret.push(32);
    6402          13 :                 }
    6403          13 :               }
    6404          13 :               if (arg) {
    6405          13 :                 for (var i = 0; i < argLength; i++) {
    6406          13 :                   ret.push(HEAPU8[((arg++)|0)]);
    6407          13 :                 }
    6408          13 :               } else {
    6409          13 :                 ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true));
    6410          13 :               }
    6411          13 :               if (flagLeftAlign) {
    6412          13 :                 while (argLength < width--) {
    6413          13 :                   ret.push(32);
    6414          13 :                 }
    6415          13 :               }
    6416          13 :               break;
    6417          13 :             }
    6418          13 :             case 'c': {
    6419          13 :               // Character.
    6420          13 :               if (flagLeftAlign) ret.push(getNextArg('i8'));
    6421          13 :               while (--width > 0) {
    6422          13 :                 ret.push(32);
    6423          13 :               }
    6424          13 :               if (!flagLeftAlign) ret.push(getNextArg('i8'));
    6425          13 :               break;
    6426          13 :             }
    6427          13 :             case 'n': {
    6428          13 :               // Write the length written so far to the next parameter.
    6429          13 :               var ptr = getNextArg('i32*');
    6430          13 :               HEAP32[((ptr)>>2)]=ret.length;
    6431          13 :               break;
    6432          13 :             }
    6433          13 :             case '%': {
    6434          13 :               // Literal percent sign.
    6435          13 :               ret.push(curr);
    6436          13 :               break;
    6437          13 :             }
    6438          13 :             default: {
    6439          13 :               // Unknown specifiers remain untouched.
    6440          13 :               for (var i = startTextIndex; i < textIndex + 2; i++) {
    6441          13 :                 ret.push(HEAP8[(i)]);
    6442          13 :               }
    6443          13 :             }
    6444          13 :           }
    6445          13 :           textIndex += 2;
    6446          13 :           // TODO: Support a/A (hex float) and m (last error) specifiers.
    6447          13 :           // TODO: Support %1${specifier} for arg selection.
    6448          13 :         } else {
    6449          13 :           ret.push(curr);
    6450          13 :           textIndex += 1;
    6451          13 :         }
    6452          13 :       }
    6453          13 :       return ret;
    6454          13 :     }function _fprintf(stream, format, varargs) {
    6455           0 :       // int fprintf(FILE *restrict stream, const char *restrict format, ...);
    6456           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
    6457           0 :       var result = __formatString(format, varargs);
    6458           0 :       var stack = Runtime.stackSave();
    6459           0 :       var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream);
    6460           0 :       Runtime.stackRestore(stack);
    6461           0 :       return ret;
    6462           1 :     }
    6463           1 : 
    6464           1 :   function _fgets(s, n, stream) {
    6465           0 :       // char *fgets(char *restrict s, int n, FILE *restrict stream);
    6466           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fgets.html
    6467           0 :       var streamObj = FS.getStreamFromPtr(stream);
    6468           0 :       if (!streamObj) return 0;
    6469           0 :       if (streamObj.error || streamObj.eof) return 0;
    6470           0 :       var byte_;
    6471           0 :       for (var i = 0; i < n - 1 && byte_ != 10; i++) {
    6472           0 :         byte_ = _fgetc(stream);
    6473           0 :         if (byte_ == -1) {
    6474           0 :           if (streamObj.error || (streamObj.eof && i == 0)) return 0;
    6475           0 :           else if (streamObj.eof) break;
    6476           0 :         }
    6477           0 :         HEAP8[(((s)+(i))|0)]=byte_;
    6478           0 :       }
    6479           0 :       HEAP8[(((s)+(i))|0)]=0;
    6480           0 :       return s;
    6481           1 :     }
    6482           1 : 
    6483           1 :   var _tan=Math_tan;
    6484           1 : 
    6485           1 :   function _ispunct(chr) {
    6486           0 :       return (chr >= 33 && chr <= 47) ||
    6487           0 :              (chr >= 58 && chr <= 64) ||
    6488           0 :              (chr >= 91 && chr <= 96) ||
    6489           0 :              (chr >= 123 && chr <= 126);
    6490           1 :     }
    6491           1 : 
    6492           3 :   function _feof(stream) {
    6493           3 :       // int feof(FILE *stream);
    6494           3 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/feof.html
    6495           3 :       stream = FS.getStreamFromPtr(stream);
    6496           3 :       return Number(stream && stream.eof);
    6497           3 :     }
    6498           1 : 
    6499           1 : 
    6500           1 :   Module["_tolower"] = _tolower;
    6501           1 : 
    6502           1 :   var _asin=Math_asin;
    6503           1 : 
    6504           1 :   function _clearerr(stream) {
    6505           0 :       // void clearerr(FILE *stream);
    6506           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/clearerr.html
    6507           0 :       stream = FS.getStreamFromPtr(stream);
    6508           0 :       if (!stream) {
    6509           0 :         return;
    6510           0 :       }
    6511           0 :       stream.eof = false;
    6512           0 :       stream.error = false;
    6513           1 :     }
    6514           1 : 
    6515           1 :   var _fabs=Math_abs;
    6516           1 : 
    6517           1 :   function _clock() {
    6518           0 :       if (_clock.start === undefined) _clock.start = Date.now();
    6519           0 :       return Math.floor((Date.now() - _clock.start) * (1000000/1000));
    6520           1 :     }
    6521           1 : 
    6522           1 : 
    6523           1 :   var _getc=_fgetc;
    6524           1 : 
    6525           1 :   function _modf(x, intpart) {
    6526           0 :       HEAPF64[((intpart)>>3)]=Math.floor(x);
    6527           0 :       return x - HEAPF64[((intpart)>>3)];
    6528           1 :     }
    6529           1 : 
    6530           1 :   var _sqrt=Math_sqrt;
    6531           1 : 
    6532           1 :   function _isxdigit(chr) {
    6533           0 :       return (chr >= 48 && chr <= 57) ||
    6534           0 :              (chr >= 97 && chr <= 102) ||
    6535           0 :              (chr >= 65 && chr <= 70);
    6536           1 :     }
    6537           1 : 
    6538           1 :   function _ftell(stream) {
    6539           0 :       // long ftell(FILE *stream);
    6540           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/ftell.html
    6541           0 :       stream = FS.getStreamFromPtr(stream);
    6542           0 :       if (!stream) {
    6543           0 :         ___setErrNo(ERRNO_CODES.EBADF);
    6544           0 :         return -1;
    6545           0 :       }
    6546           0 :       if (FS.isChrdev(stream.node.mode)) {
    6547           0 :         ___setErrNo(ERRNO_CODES.ESPIPE);
    6548           0 :         return -1;
    6549           0 :       } else {
    6550           0 :         return stream.position;
    6551           0 :       }
    6552           1 :     }
    6553           1 : 
    6554           1 : 
    6555           1 :   function __exit(status) {
    6556           0 :       // void _exit(int status);
    6557           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html
    6558           0 :       Module['exit'](status);
    6559           1 :     }function _exit(status) {
    6560           0 :       __exit(status);
    6561           1 :     }
    6562           1 : 
    6563           1 : 
    6564          13 :   function _snprintf(s, n, format, varargs) {
    6565          13 :       // int snprintf(char *restrict s, size_t n, const char *restrict format, ...);
    6566          13 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
    6567          13 :       var result = __formatString(format, varargs);
    6568          13 :       var limit = (n === undefined) ? result.length
    6569          13 :                                     : Math.min(result.length, Math.max(n - 1, 0));
    6570          13 :       if (s < 0) {
    6571          13 :         s = -s;
    6572          13 :         var buf = _malloc(limit+1);
    6573          13 :         HEAP32[((s)>>2)]=buf;
    6574          13 :         s = buf;
    6575          13 :       }
    6576          13 :       for (var i = 0; i < limit; i++) {
    6577          13 :         HEAP8[(((s)+(i))|0)]=result[i];
    6578          13 :       }
    6579          13 :       if (limit < n || (n === undefined)) HEAP8[(((s)+(i))|0)]=0;
    6580          13 :       return result.length;
    6581          13 :     }function _sprintf(s, format, varargs) {
    6582          13 :       // int sprintf(char *restrict s, const char *restrict format, ...);
    6583          13 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
    6584          13 :       return _snprintf(s, undefined, format, varargs);
    6585          13 :     }
    6586           1 : 
    6587           1 :   var _emscripten_get_longjmp_result=true;
    6588           1 : 
    6589           1 :   var _sin=Math_sin;
    6590           1 : 
    6591           1 : 
    6592           1 :   function _fmod(x, y) {
    6593           0 :       return x % y;
    6594           1 :     }var _fmodl=_fmod;
    6595           1 : 
    6596           1 : 
    6597           1 : 
    6598           1 :   var _atan=Math_atan;
    6599           1 : 
    6600           1 :   function _ferror(stream) {
    6601           1 :       // int ferror(FILE *stream);
    6602           1 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/ferror.html
    6603           1 :       stream = FS.getStreamFromPtr(stream);
    6604           1 :       return Number(stream && stream.error);
    6605           1 :     }
    6606           1 : 
    6607           2 :   function _time(ptr) {
    6608           2 :       var ret = Math.floor(Date.now()/1000);
    6609           2 :       if (ptr) {
    6610           2 :         HEAP32[((ptr)>>2)]=ret;
    6611           2 :       }
    6612           2 :       return ret;
    6613           2 :     }
    6614           1 : 
    6615           1 :   function _copysign(a, b) {
    6616           0 :       return __reallyNegative(a) === __reallyNegative(b) ? a : -a;
    6617           1 :     }
    6618           1 : 
    6619           1 : 
    6620           1 :   function _gmtime_r(time, tmPtr) {
    6621           0 :       var date = new Date(HEAP32[((time)>>2)]*1000);
    6622           0 :       HEAP32[((tmPtr)>>2)]=date.getUTCSeconds();
    6623           0 :       HEAP32[(((tmPtr)+(4))>>2)]=date.getUTCMinutes();
    6624           0 :       HEAP32[(((tmPtr)+(8))>>2)]=date.getUTCHours();
    6625           0 :       HEAP32[(((tmPtr)+(12))>>2)]=date.getUTCDate();
    6626           0 :       HEAP32[(((tmPtr)+(16))>>2)]=date.getUTCMonth();
    6627           0 :       HEAP32[(((tmPtr)+(20))>>2)]=date.getUTCFullYear()-1900;
    6628           0 :       HEAP32[(((tmPtr)+(24))>>2)]=date.getUTCDay();
    6629           0 :       HEAP32[(((tmPtr)+(36))>>2)]=0;
    6630           0 :       HEAP32[(((tmPtr)+(32))>>2)]=0;
    6631           0 :       var start = new Date(date); // define date using UTC, start from Jan 01 00:00:00 UTC
    6632           0 :       start.setUTCDate(1);
    6633           0 :       start.setUTCMonth(0);
    6634           0 :       start.setUTCHours(0);
    6635           0 :       start.setUTCMinutes(0);
    6636           0 :       start.setUTCSeconds(0);
    6637           0 :       start.setUTCMilliseconds(0);
    6638           0 :       var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));
    6639           0 :       HEAP32[(((tmPtr)+(28))>>2)]=yday;
    6640           0 :       HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone;
    6641           0 : 
    6642           0 :       return tmPtr;
    6643           1 :     }function _gmtime(time) {
    6644           0 :       return _gmtime_r(time, ___tm_current);
    6645           1 :     }
    6646           1 : 
    6647           1 :   function _isgraph(chr) {
    6648           0 :       return 0x20 < chr && chr < 0x7F;
    6649           1 :     }
    6650           1 : 
    6651           1 : 
    6652           1 : 
    6653           1 :   function _strerror_r(errnum, strerrbuf, buflen) {
    6654           0 :       if (errnum in ERRNO_MESSAGES) {
    6655           0 :         if (ERRNO_MESSAGES[errnum].length > buflen - 1) {
    6656           0 :           return ___setErrNo(ERRNO_CODES.ERANGE);
    6657           0 :         } else {
    6658           0 :           var msg = ERRNO_MESSAGES[errnum];
    6659           0 :           writeAsciiToMemory(msg, strerrbuf);
    6660           0 :           return 0;
    6661           0 :         }
    6662           0 :       } else {
    6663           0 :         return ___setErrNo(ERRNO_CODES.EINVAL);
    6664           0 :       }
    6665           1 :     }function _strerror(errnum) {
    6666           0 :       if (!_strerror.buffer) _strerror.buffer = _malloc(256);
    6667           0 :       _strerror_r(errnum, _strerror.buffer, 256);
    6668           0 :       return _strerror.buffer;
    6669           1 :     }
    6670           1 : 
    6671           1 : 
    6672           1 : 
    6673           1 : 
    6674           1 : 
    6675           1 :   var _environ=allocate(1, "i32*", ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env) {
    6676           1 :       // WARNING: Arbitrary limit!
    6677           1 :       var MAX_ENV_VALUES = 64;
    6678           1 :       var TOTAL_ENV_SIZE = 1024;
    6679           1 : 
    6680           1 :       // Statically allocate memory for the environment.
    6681           1 :       var poolPtr;
    6682           1 :       var envPtr;
    6683           1 :       if (!___buildEnvironment.called) {
    6684           1 :         ___buildEnvironment.called = true;
    6685           1 :         // Set default values. Use string keys for Closure Compiler compatibility.
    6686           1 :         ENV['USER'] = 'root';
    6687           1 :         ENV['PATH'] = '/';
    6688           1 :         ENV['PWD'] = '/';
    6689           1 :         ENV['HOME'] = '/home/emscripten';
    6690           1 :         ENV['LANG'] = 'en_US.UTF-8';
    6691           1 :         ENV['_'] = './this.program';
    6692           1 :         // Allocate memory.
    6693           1 :         poolPtr = allocate(TOTAL_ENV_SIZE, 'i8', ALLOC_STATIC);
    6694           1 :         envPtr = allocate(MAX_ENV_VALUES * 4,
    6695           1 :                           'i8*', ALLOC_STATIC);
    6696           1 :         HEAP32[((envPtr)>>2)]=poolPtr;
    6697           1 :         HEAP32[((_environ)>>2)]=envPtr;
    6698           1 :       } else {
    6699           1 :         envPtr = HEAP32[((_environ)>>2)];
    6700           1 :         poolPtr = HEAP32[((envPtr)>>2)];
    6701           1 :       }
    6702           1 : 
    6703           1 :       // Collect key=value lines.
    6704           1 :       var strings = [];
    6705           1 :       var totalSize = 0;
    6706           1 :       for (var key in env) {
    6707           1 :         if (typeof env[key] === 'string') {
    6708           1 :           var line = key + '=' + env[key];
    6709           1 :           strings.push(line);
    6710           1 :           totalSize += line.length;
    6711           1 :         }
    6712           1 :       }
    6713           1 :       if (totalSize > TOTAL_ENV_SIZE) {
    6714           1 :         throw new Error('Environment size exceeded TOTAL_ENV_SIZE!');
    6715           1 :       }
    6716           1 : 
    6717           1 :       // Make new.
    6718           1 :       var ptrSize = 4;
    6719           1 :       for (var i = 0; i < strings.length; i++) {
    6720           1 :         var line = strings[i];
    6721           1 :         writeAsciiToMemory(line, poolPtr);
    6722           1 :         HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr;
    6723           1 :         poolPtr += line.length + 1;
    6724           1 :       }
    6725           1 :       HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0;
    6726           6 :     }var ENV={};function _getenv(name) {
    6727           6 :       // char *getenv(const char *name);
    6728           6 :       // http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html
    6729           6 :       if (name === 0) return 0;
    6730           6 :       name = Pointer_stringify(name);
    6731           6 :       if (!ENV.hasOwnProperty(name)) return 0;
    6732           6 : 
    6733           6 :       if (_getenv.ret) _free(_getenv.ret);
    6734           6 :       _getenv.ret = allocate(intArrayFromString(ENV[name]), 'i8', ALLOC_NORMAL);
    6735           6 :       return _getenv.ret;
    6736           6 :     }
    6737           1 : 
    6738           1 :   var _emscripten_setjmp=true;
    6739           1 : 
    6740           1 :   var _cos=Math_cos;
    6741           1 : 
    6742           1 :   function _isalnum(chr) {
    6743           0 :       return (chr >= 48 && chr <= 57) ||
    6744           0 :              (chr >= 97 && chr <= 122) ||
    6745           0 :              (chr >= 65 && chr <= 90);
    6746           1 :     }
    6747           1 : 
    6748           1 :   var _BItoD=true;
    6749           1 : 
    6750           1 :   function _difftime(time1, time0) {
    6751           0 :       return time1 - time0;
    6752           1 :     }
    6753           1 : 
    6754           1 :   var _floor=Math_floor;
    6755           1 : 
    6756           1 :   function _iscntrl(chr) {
    6757           0 :       return (0 <= chr && chr <= 0x1F) || chr === 0x7F;
    6758           1 :     }
    6759           1 : 
    6760           1 :   var _atan2=Math_atan2;
    6761           1 : 
    6762           1 :   function _setvbuf(stream, buf, type, size) {
    6763           0 :       // int setvbuf(FILE *restrict stream, char *restrict buf, int type, size_t size);
    6764           0 :       // http://pubs.opengroup.org/onlinepubs/000095399/functions/setvbuf.html
    6765           0 :       // TODO: Implement custom buffering.
    6766           0 :       return 0;
    6767           1 :     }
    6768           1 : 
    6769           1 :   var _exp=Math_exp;
    6770           1 : 
    6771           1 :   var _copysignl=_copysign;
    6772           1 : 
    6773           1 :   function _islower(chr) {
    6774           0 :       return chr >= 97 && chr <= 122;
    6775           1 :     }
    6776           1 : 
    6777           1 :   var _acos=Math_acos;
    6778           1 : 
    6779           1 :   function _isupper(chr) {
    6780           0 :       return chr >= 65 && chr <= 90;
    6781           1 :     }
    6782           1 : 
    6783           1 : 
    6784           1 :   function __isLeapYear(year) {
    6785           0 :         return year%4 === 0 && (year%100 !== 0 || year%400 === 0);
    6786           1 :     }
    6787           1 : 
    6788           1 :   function __arraySum(array, index) {
    6789           0 :       var sum = 0;
    6790           0 :       for (var i = 0; i <= index; sum += array[i++]);
    6791           0 :       return sum;
    6792           1 :     }
    6793           1 : 
    6794           1 : 
    6795           1 :   var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];
    6796           1 : 
    6797           1 :   var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date, days) {
    6798           0 :       var newDate = new Date(date.getTime());
    6799           0 :       while(days > 0) {
    6800           0 :         var leap = __isLeapYear(newDate.getFullYear());
    6801           0 :         var currentMonth = newDate.getMonth();
    6802           0 :         var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];
    6803           0 : 
    6804           0 :         if (days > daysInCurrentMonth-newDate.getDate()) {
    6805           0 :           // we spill over to next month
    6806           0 :           days -= (daysInCurrentMonth-newDate.getDate()+1);
    6807           0 :           newDate.setDate(1);
    6808           0 :           if (currentMonth < 11) {
    6809           0 :             newDate.setMonth(currentMonth+1)
    6810           0 :           } else {
    6811           0 :             newDate.setMonth(0);
    6812           0 :             newDate.setFullYear(newDate.getFullYear()+1);
    6813           0 :           }
    6814           0 :         } else {
    6815           0 :           // we stay in current month
    6816           0 :           newDate.setDate(newDate.getDate()+days);
    6817           0 :           return newDate;
    6818           0 :         }
    6819           0 :       }
    6820           0 : 
    6821           0 :       return newDate;
    6822           1 :     }function _strftime(s, maxsize, format, tm) {
    6823           0 :       // size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr);
    6824           0 :       // http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html
    6825           0 : 
    6826           0 :       var date = {
    6827           0 :         tm_sec: HEAP32[((tm)>>2)],
    6828           0 :         tm_min: HEAP32[(((tm)+(4))>>2)],
    6829           0 :         tm_hour: HEAP32[(((tm)+(8))>>2)],
    6830           0 :         tm_mday: HEAP32[(((tm)+(12))>>2)],
    6831           0 :         tm_mon: HEAP32[(((tm)+(16))>>2)],
    6832           0 :         tm_year: HEAP32[(((tm)+(20))>>2)],
    6833           0 :         tm_wday: HEAP32[(((tm)+(24))>>2)],
    6834           0 :         tm_yday: HEAP32[(((tm)+(28))>>2)],
    6835           0 :         tm_isdst: HEAP32[(((tm)+(32))>>2)]
    6836           0 :       };
    6837           0 : 
    6838           0 :       var pattern = Pointer_stringify(format);
    6839           0 : 
    6840           0 :       // expand format
    6841           0 :       var EXPANSION_RULES_1 = {
    6842           0 :         '%c': '%a %b %d %H:%M:%S %Y',     // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug  3 14:02:01 2013
    6843           0 :         '%D': '%m/%d/%y',                 // Equivalent to %m / %d / %y
    6844           0 :         '%F': '%Y-%m-%d',                 // Equivalent to %Y - %m - %d
    6845           0 :         '%h': '%b',                       // Equivalent to %b
    6846           0 :         '%r': '%I:%M:%S %p',              // Replaced by the time in a.m. and p.m. notation
    6847           0 :         '%R': '%H:%M',                    // Replaced by the time in 24-hour notation
    6848           0 :         '%T': '%H:%M:%S',                 // Replaced by the time
    6849           0 :         '%x': '%m/%d/%y',                 // Replaced by the locale's appropriate date representation
    6850           0 :         '%X': '%H:%M:%S',                 // Replaced by the locale's appropriate date representation
    6851           0 :       };
    6852           0 :       for (var rule in EXPANSION_RULES_1) {
    6853           0 :         pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_1[rule]);
    6854           0 :       }
    6855           0 : 
    6856           0 :       var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    6857           0 :       var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
    6858           0 : 
    6859           0 :       function leadingSomething(value, digits, character) {
    6860           0 :         var str = typeof value === 'number' ? value.toString() : (value || '');
    6861           0 :         while (str.length < digits) {
    6862           0 :           str = character[0]+str;
    6863           0 :         }
    6864           0 :         return str;
    6865           0 :       };
    6866           0 : 
    6867           0 :       function leadingNulls(value, digits) {
    6868           0 :         return leadingSomething(value, digits, '0');
    6869           0 :       };
    6870           0 : 
    6871           0 :       function compareByDay(date1, date2) {
    6872           0 :         function sgn(value) {
    6873           0 :           return value < 0 ? -1 : (value > 0 ? 1 : 0);
    6874           0 :         };
    6875           0 : 
    6876           0 :         var compare;
    6877           0 :         if ((compare = sgn(date1.getFullYear()-date2.getFullYear())) === 0) {
    6878           0 :           if ((compare = sgn(date1.getMonth()-date2.getMonth())) === 0) {
    6879           0 :             compare = sgn(date1.getDate()-date2.getDate());
    6880           0 :           }
    6881           0 :         }
    6882           0 :         return compare;
    6883           0 :       };
    6884           0 : 
    6885           0 :       function getFirstWeekStartDate(janFourth) {
    6886           0 :           switch (janFourth.getDay()) {
    6887           0 :             case 0: // Sunday
    6888           0 :               return new Date(janFourth.getFullYear()-1, 11, 29);
    6889           0 :             case 1: // Monday
    6890           0 :               return janFourth;
    6891           0 :             case 2: // Tuesday
    6892           0 :               return new Date(janFourth.getFullYear(), 0, 3);
    6893           0 :             case 3: // Wednesday
    6894           0 :               return new Date(janFourth.getFullYear(), 0, 2);
    6895           0 :             case 4: // Thursday
    6896           0 :               return new Date(janFourth.getFullYear(), 0, 1);
    6897           0 :             case 5: // Friday
    6898           0 :               return new Date(janFourth.getFullYear()-1, 11, 31);
    6899           0 :             case 6: // Saturday
    6900           0 :               return new Date(janFourth.getFullYear()-1, 11, 30);
    6901           0 :           }
    6902           0 :       };
    6903           0 : 
    6904           0 :       function getWeekBasedYear(date) {
    6905           0 :           var thisDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday);
    6906           0 : 
    6907           0 :           var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
    6908           0 :           var janFourthNextYear = new Date(thisDate.getFullYear()+1, 0, 4);
    6909           0 : 
    6910           0 :           var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
    6911           0 :           var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
    6912           0 : 
    6913           0 :           if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
    6914           0 :             // this date is after the start of the first week of this year
    6915           0 :             if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
    6916           0 :               return thisDate.getFullYear()+1;
    6917           0 :             } else {
    6918           0 :               return thisDate.getFullYear();
    6919           0 :             }
    6920           0 :           } else {
    6921           0 :             return thisDate.getFullYear()-1;
    6922           0 :           }
    6923           0 :       };
    6924           0 : 
    6925           0 :       var EXPANSION_RULES_2 = {
    6926           0 :         '%a': function(date) {
    6927           0 :           return WEEKDAYS[date.tm_wday].substring(0,3);
    6928           0 :         },
    6929           0 :         '%A': function(date) {
    6930           0 :           return WEEKDAYS[date.tm_wday];
    6931           0 :         },
    6932           0 :         '%b': function(date) {
    6933           0 :           return MONTHS[date.tm_mon].substring(0,3);
    6934           0 :         },
    6935           0 :         '%B': function(date) {
    6936           0 :           return MONTHS[date.tm_mon];
    6937           0 :         },
    6938           0 :         '%C': function(date) {
    6939           0 :           var year = date.tm_year+1900;
    6940           0 :           return leadingNulls(Math.floor(year/100),2);
    6941           0 :         },
    6942           0 :         '%d': function(date) {
    6943           0 :           return leadingNulls(date.tm_mday, 2);
    6944           0 :         },
    6945           0 :         '%e': function(date) {
    6946           0 :           return leadingSomething(date.tm_mday, 2, ' ');
    6947           0 :         },
    6948           0 :         '%g': function(date) {
    6949           0 :           // %g, %G, and %V give values according to the ISO 8601:2000 standard week-based year.
    6950           0 :           // In this system, weeks begin on a Monday and week 1 of the year is the week that includes
    6951           0 :           // January 4th, which is also the week that includes the first Thursday of the year, and
    6952           0 :           // is also the first week that contains at least four days in the year.
    6953           0 :           // If the first Monday of January is the 2nd, 3rd, or 4th, the preceding days are part of
    6954           0 :           // the last week of the preceding year; thus, for Saturday 2nd January 1999,
    6955           0 :           // %G is replaced by 1998 and %V is replaced by 53. If December 29th, 30th,
    6956           0 :           // or 31st is a Monday, it and any following days are part of week 1 of the following year.
    6957           0 :           // Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and %V is replaced by 01.
    6958           0 : 
    6959           0 :           return getWeekBasedYear(date).toString().substring(2);
    6960           0 :         },
    6961           0 :         '%G': function(date) {
    6962           0 :           return getWeekBasedYear(date);
    6963           0 :         },
    6964           0 :         '%H': function(date) {
    6965           0 :           return leadingNulls(date.tm_hour, 2);
    6966           0 :         },
    6967           0 :         '%I': function(date) {
    6968           0 :           return leadingNulls(date.tm_hour < 13 ? date.tm_hour : date.tm_hour-12, 2);
    6969           0 :         },
    6970           0 :         '%j': function(date) {
    6971           0 :           // Day of the year (001-366)
    6972           0 :           return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon-1), 3);
    6973           0 :         },
    6974           0 :         '%m': function(date) {
    6975           0 :           return leadingNulls(date.tm_mon+1, 2);
    6976           0 :         },
    6977           0 :         '%M': function(date) {
    6978           0 :           return leadingNulls(date.tm_min, 2);
    6979           0 :         },
    6980           0 :         '%n': function() {
    6981           0 :           return '\n';
    6982           0 :         },
    6983           0 :         '%p': function(date) {
    6984           0 :           if (date.tm_hour > 0 && date.tm_hour < 13) {
    6985           0 :             return 'AM';
    6986           0 :           } else {
    6987           0 :             return 'PM';
    6988           0 :           }
    6989           0 :         },
    6990           0 :         '%S': function(date) {
    6991           0 :           return leadingNulls(date.tm_sec, 2);
    6992           0 :         },
    6993           0 :         '%t': function() {
    6994           0 :           return '\t';
    6995           0 :         },
    6996           0 :         '%u': function(date) {
    6997           0 :           var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0);
    6998           0 :           return day.getDay() || 7;
    6999           0 :         },
    7000           0 :         '%U': function(date) {
    7001           0 :           // Replaced by the week number of the year as a decimal number [00,53].
    7002           0 :           // The first Sunday of January is the first day of week 1;
    7003           0 :           // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday]
    7004           0 :           var janFirst = new Date(date.tm_year+1900, 0, 1);
    7005           0 :           var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7-janFirst.getDay());
    7006           0 :           var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
    7007           0 : 
    7008           0 :           // is target date after the first Sunday?
    7009           0 :           if (compareByDay(firstSunday, endDate) < 0) {
    7010           0 :             // calculate difference in days between first Sunday and endDate
    7011           0 :             var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
    7012           0 :             var firstSundayUntilEndJanuary = 31-firstSunday.getDate();
    7013           0 :             var days = firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
    7014           0 :             return leadingNulls(Math.ceil(days/7), 2);
    7015           0 :           }
    7016           0 : 
    7017           0 :           return compareByDay(firstSunday, janFirst) === 0 ? '01': '00';
    7018           0 :         },
    7019           0 :         '%V': function(date) {
    7020           0 :           // Replaced by the week number of the year (Monday as the first day of the week)
    7021           0 :           // as a decimal number [01,53]. If the week containing 1 January has four
    7022           0 :           // or more days in the new year, then it is considered week 1.
    7023           0 :           // Otherwise, it is the last week of the previous year, and the next week is week 1.
    7024           0 :           // Both January 4th and the first Thursday of January are always in week 1. [ tm_year, tm_wday, tm_yday]
    7025           0 :           var janFourthThisYear = new Date(date.tm_year+1900, 0, 4);
    7026           0 :           var janFourthNextYear = new Date(date.tm_year+1901, 0, 4);
    7027           0 : 
    7028           0 :           var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
    7029           0 :           var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
    7030           0 : 
    7031           0 :           var endDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday);
    7032           0 : 
    7033           0 :           if (compareByDay(endDate, firstWeekStartThisYear) < 0) {
    7034           0 :             // if given date is before this years first week, then it belongs to the 53rd week of last year
    7035           0 :             return '53';
    7036           0 :           }
    7037           0 : 
    7038           0 :           if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {
    7039           0 :             // if given date is after next years first week, then it belongs to the 01th week of next year
    7040           0 :             return '01';
    7041           0 :           }
    7042           0 : 
    7043           0 :           // given date is in between CW 01..53 of this calendar year
    7044           0 :           var daysDifference;
    7045           0 :           if (firstWeekStartThisYear.getFullYear() < date.tm_year+1900) {
    7046           0 :             // first CW of this year starts last year
    7047           0 :             daysDifference = date.tm_yday+32-firstWeekStartThisYear.getDate()
    7048           0 :           } else {
    7049           0 :             // first CW of this year starts this year
    7050           0 :             daysDifference = date.tm_yday+1-firstWeekStartThisYear.getDate();
    7051           0 :           }
    7052           0 :           return leadingNulls(Math.ceil(daysDifference/7), 2);
    7053           0 :         },
    7054           0 :         '%w': function(date) {
    7055           0 :           var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0);
    7056           0 :           return day.getDay();
    7057           0 :         },
    7058           0 :         '%W': function(date) {
    7059           0 :           // Replaced by the week number of the year as a decimal number [00,53].
    7060           0 :           // The first Monday of January is the first day of week 1;
    7061           0 :           // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday]
    7062           0 :           var janFirst = new Date(date.tm_year, 0, 1);
    7063           0 :           var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7-janFirst.getDay()+1);
    7064           0 :           var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
    7065           0 : 
    7066           0 :           // is target date after the first Monday?
    7067           0 :           if (compareByDay(firstMonday, endDate) < 0) {
    7068           0 :             var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
    7069           0 :             var firstMondayUntilEndJanuary = 31-firstMonday.getDate();
    7070           0 :             var days = firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
    7071           0 :             return leadingNulls(Math.ceil(days/7), 2);
    7072           0 :           }
    7073           0 :           return compareByDay(firstMonday, janFirst) === 0 ? '01': '00';
    7074           0 :         },
    7075           0 :         '%y': function(date) {
    7076           0 :           // Replaced by the last two digits of the year as a decimal number [00,99]. [ tm_year]
    7077           0 :           return (date.tm_year+1900).toString().substring(2);
    7078           0 :         },
    7079           0 :         '%Y': function(date) {
    7080           0 :           // Replaced by the year as a decimal number (for example, 1997). [ tm_year]
    7081           0 :           return date.tm_year+1900;
    7082           0 :         },
    7083           0 :         '%z': function(date) {
    7084           0 :           // Replaced by the offset from UTC in the ISO 8601:2000 standard format ( +hhmm or -hhmm ),
    7085           0 :           // or by no characters if no timezone is determinable.
    7086           0 :           // For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich).
    7087           0 :           // If tm_isdst is zero, the standard time offset is used.
    7088           0 :           // If tm_isdst is greater than zero, the daylight savings time offset is used.
    7089           0 :           // If tm_isdst is negative, no characters are returned.
    7090           0 :           // FIXME: we cannot determine time zone (or can we?)
    7091           0 :           return '';
    7092           0 :         },
    7093           0 :         '%Z': function(date) {
    7094           0 :           // Replaced by the timezone name or abbreviation, or by no bytes if no timezone information exists. [ tm_isdst]
    7095           0 :           // FIXME: we cannot determine time zone (or can we?)
    7096           0 :           return '';
    7097           0 :         },
    7098           0 :         '%%': function() {
    7099           0 :           return '%';
    7100           0 :         }
    7101           0 :       };
    7102           0 :       for (var rule in EXPANSION_RULES_2) {
    7103           0 :         if (pattern.indexOf(rule) >= 0) {
    7104           0 :           pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_2[rule](date));
    7105           0 :         }
    7106           0 :       }
    7107           0 : 
    7108           0 :       var bytes = intArrayFromString(pattern, false);
    7109           0 :       if (bytes.length > maxsize) {
    7110           0 :         return 0;
    7111           0 :       }
    7112           0 : 
    7113           0 :       writeArrayToMemory(bytes, s);
    7114           0 :       return bytes.length-1;
    7115           1 :     }
    7116           1 : 
    7117           1 : 
    7118           1 : 
    7119           1 : FS.staticInit();__ATINIT__.unshift({ func: function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() } });__ATMAIN__.push({ func: function() { FS.ignorePermissions = false } });__ATEXIT__.push({ func: function() { FS.quit() } });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;
    7120           1 : ___errno_state = Runtime.staticAlloc(4); HEAP32[((___errno_state)>>2)]=0;
    7121           1 : __ATINIT__.unshift({ func: function() { TTY.init() } });__ATEXIT__.push({ func: function() { TTY.shutdown() } });TTY.utf8 = new Runtime.UTF8Processor();
    7122           1 : if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); NODEFS.staticInit(); }
    7123           1 : __ATINIT__.push({ func: function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); } });
    7124           1 : _fputc.ret = allocate([0], "i8", ALLOC_STATIC);
    7125           1 : Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas) };
    7126           1 :   Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) };
    7127           1 :   Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) };
    7128           1 :   Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() };
    7129           1 :   Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() };
    7130           1 :   Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() }
    7131           1 : _fgetc.ret = allocate([0], "i8", ALLOC_STATIC);
    7132           1 : ___buildEnvironment(ENV);
    7133           1 : STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
    7134           1 : 
    7135           1 : staticSealed = true; // seal the static portion of memory
    7136           1 : 
    7137           1 : STACK_MAX = STACK_BASE + 5242880;
    7138           1 : 
    7139           1 : DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
    7140           1 : 
    7141           1 : assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
    7142           1 : 
    7143           1 :  var ctlz_i8 = allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_DYNAMIC);
    7144           1 :  var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_DYNAMIC);
    7145           1 : 
    7146           1 : var Math_min = Math.min;
    7147           1 : function invoke_iiii(index,a1,a2,a3) {
    7148           0 :   try {
    7149           0 :     return Module["dynCall_iiii"](index,a1,a2,a3);
    7150           0 :   } catch(e) {
    7151           0 :     if (typeof e !== 'number' && e !== 'longjmp') throw e;
    7152           0 :     asm["setThrew"](1, 0);
    7153           0 :   }
    7154           1 : }
    7155           1 : 
    7156           1 : function invoke_vi(index,a1) {
    7157           0 :   try {
    7158           0 :     Module["dynCall_vi"](index,a1);
    7159           0 :   } catch(e) {
    7160           0 :     if (typeof e !== 'number' && e !== 'longjmp') throw e;
    7161           0 :     asm["setThrew"](1, 0);
    7162           0 :   }
    7163           1 : }
    7164           1 : 
    7165           8 : function invoke_vii(index,a1,a2) {
    7166           8 :   try {
    7167           8 :     Module["dynCall_vii"](index,a1,a2);
    7168           8 :   } catch(e) {
    7169           8 :     if (typeof e !== 'number' && e !== 'longjmp') throw e;
    7170           8 :     asm["setThrew"](1, 0);
    7171           8 :   }
    7172           8 : }
    7173           1 : 
    7174           1 : function invoke_ii(index,a1) {
    7175           0 :   try {
    7176           0 :     return Module["dynCall_ii"](index,a1);
    7177           0 :   } catch(e) {
    7178           0 :     if (typeof e !== 'number' && e !== 'longjmp') throw e;
    7179           0 :     asm["setThrew"](1, 0);
    7180           0 :   }
    7181           1 : }
    7182           1 : 
    7183           1 : function invoke_iiiii(index,a1,a2,a3,a4) {
    7184           0 :   try {
    7185           0 :     return Module["dynCall_iiiii"](index,a1,a2,a3,a4);
    7186           0 :   } catch(e) {
    7187           0 :     if (typeof e !== 'number' && e !== 'longjmp') throw e;
    7188           0 :     asm["setThrew"](1, 0);
    7189           0 :   }
    7190           1 : }
    7191           1 : 
    7192           1 : function invoke_iii(index,a1,a2) {
    7193           0 :   try {
    7194           0 :     return Module["dynCall_iii"](index,a1,a2);
    7195           0 :   } catch(e) {
    7196           0 :     if (typeof e !== 'number' && e !== 'longjmp') throw e;
    7197           0 :     asm["setThrew"](1, 0);
    7198           0 :   }
    7199           1 : }
    7200           1 : 
    7201           1 : function asmPrintInt(x, y) {
    7202           0 :   Module.print('int ' + x + ',' + y);// + ' ' + new Error().stack);
    7203           1 : }
    7204           1 : function asmPrintFloat(x, y) {
    7205           0 :   Module.print('float ' + x + ',' + y);// + ' ' + new Error().stack);
    7206           1 : }
    7207           1 : // EMSCRIPTEN_START_ASM
    7208           1 : var asm = (function(global, env, buffer) {
    7209           1 :   'use asm';
    7210           1 :   var HEAP8 = new global.Int8Array(buffer);
    7211           1 :   var HEAP16 = new global.Int16Array(buffer);
    7212           1 :   var HEAP32 = new global.Int32Array(buffer);
    7213           1 :   var HEAPU8 = new global.Uint8Array(buffer);
    7214           1 :   var HEAPU16 = new global.Uint16Array(buffer);
    7215           1 :   var HEAPU32 = new global.Uint32Array(buffer);
    7216           1 :   var HEAPF32 = new global.Float32Array(buffer);
    7217           1 :   var HEAPF64 = new global.Float64Array(buffer);
    7218           1 : 
    7219           1 :   var STACKTOP=env.STACKTOP|0;
    7220           1 :   var STACK_MAX=env.STACK_MAX|0;
    7221           1 :   var tempDoublePtr=env.tempDoublePtr|0;
    7222           1 :   var ABORT=env.ABORT|0;
    7223           1 :   var cttz_i8=env.cttz_i8|0;
    7224           1 :   var ctlz_i8=env.ctlz_i8|0;
    7225           1 :   var ___rand_seed=env.___rand_seed|0;
    7226           1 :   var _stderr=env._stderr|0;
    7227           1 :   var _stdin=env._stdin|0;
    7228           1 :   var _stdout=env._stdout|0;
    7229           1 : 
    7230           1 :   var __THREW__ = 0;
    7231           1 :   var threwValue = 0;
    7232           1 :   var setjmpId = 0;
    7233           1 :   var undef = 0;
    7234           1 :   var nan = +env.NaN, inf = +env.Infinity;
    7235           1 :   var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0;
    7236           1 : 
    7237           1 :   var tempRet0 = 0;
    7238           1 :   var tempRet1 = 0;
    7239           1 :   var tempRet2 = 0;
    7240           1 :   var tempRet3 = 0;
    7241           1 :   var tempRet4 = 0;
    7242           1 :   var tempRet5 = 0;
    7243           1 :   var tempRet6 = 0;
    7244           1 :   var tempRet7 = 0;
    7245           1 :   var tempRet8 = 0;
    7246           1 :   var tempRet9 = 0;
    7247           1 :   var Math_floor=global.Math.floor;
    7248           1 :   var Math_abs=global.Math.abs;
    7249           1 :   var Math_sqrt=global.Math.sqrt;
    7250           1 :   var Math_pow=global.Math.pow;
    7251           1 :   var Math_cos=global.Math.cos;
    7252           1 :   var Math_sin=global.Math.sin;
    7253           1 :   var Math_tan=global.Math.tan;
    7254           1 :   var Math_acos=global.Math.acos;
    7255           1 :   var Math_asin=global.Math.asin;
    7256           1 :   var Math_atan=global.Math.atan;
    7257           1 :   var Math_atan2=global.Math.atan2;
    7258           1 :   var Math_exp=global.Math.exp;
    7259           1 :   var Math_log=global.Math.log;
    7260           1 :   var Math_ceil=global.Math.ceil;
    7261           1 :   var Math_imul=global.Math.imul;
    7262           1 :   var abort=env.abort;
    7263           1 :   var assert=env.assert;
    7264           1 :   var asmPrintInt=env.asmPrintInt;
    7265           1 :   var asmPrintFloat=env.asmPrintFloat;
    7266           1 :   var Math_min=env.min;
    7267           1 :   var invoke_iiii=env.invoke_iiii;
    7268           1 :   var invoke_vi=env.invoke_vi;
    7269           1 :   var invoke_vii=env.invoke_vii;
    7270           1 :   var invoke_ii=env.invoke_ii;
    7271           1 :   var invoke_iiiii=env.invoke_iiiii;
    7272           1 :   var invoke_iii=env.invoke_iii;
    7273           1 :   var _isalnum=env._isalnum;
    7274           1 :   var _fabs=env._fabs;
    7275           1 :   var _frexp=env._frexp;
    7276           1 :   var _exp=env._exp;
    7277           1 :   var _fread=env._fread;
    7278           1 :   var __reallyNegative=env.__reallyNegative;
    7279           1 :   var _longjmp=env._longjmp;
    7280           1 :   var __addDays=env.__addDays;
    7281           1 :   var _fsync=env._fsync;
    7282           1 :   var _signal=env._signal;
    7283           1 :   var _rename=env._rename;
    7284           1 :   var _sbrk=env._sbrk;
    7285           1 :   var _emscripten_memcpy_big=env._emscripten_memcpy_big;
    7286           1 :   var _sinh=env._sinh;
    7287           1 :   var _sysconf=env._sysconf;
    7288           1 :   var _close=env._close;
    7289           1 :   var _ferror=env._ferror;
    7290           1 :   var _clock=env._clock;
    7291           1 :   var _cos=env._cos;
    7292           1 :   var _tanh=env._tanh;
    7293           1 :   var _unlink=env._unlink;
    7294           1 :   var _write=env._write;
    7295           1 :   var __isLeapYear=env.__isLeapYear;
    7296           1 :   var _ftell=env._ftell;
    7297           1 :   var _isupper=env._isupper;
    7298           1 :   var _gmtime_r=env._gmtime_r;
    7299           1 :   var _islower=env._islower;
    7300           1 :   var _tmpnam=env._tmpnam;
    7301           1 :   var _tmpfile=env._tmpfile;
    7302           1 :   var _send=env._send;
    7303           1 :   var _abort=env._abort;
    7304           1 :   var _setvbuf=env._setvbuf;
    7305           1 :   var _atan2=env._atan2;
    7306           1 :   var _setlocale=env._setlocale;
    7307           1 :   var _isgraph=env._isgraph;
    7308           1 :   var _modf=env._modf;
    7309           1 :   var _strerror_r=env._strerror_r;
    7310           1 :   var _fscanf=env._fscanf;
    7311           1 :   var ___setErrNo=env.___setErrNo;
    7312           1 :   var _isalpha=env._isalpha;
    7313           1 :   var _srand=env._srand;
    7314           1 :   var _mktime=env._mktime;
    7315           1 :   var _putchar=env._putchar;
    7316           1 :   var _gmtime=env._gmtime;
    7317           1 :   var _localeconv=env._localeconv;
    7318           1 :   var _sprintf=env._sprintf;
    7319           1 :   var _localtime=env._localtime;
    7320           1 :   var _read=env._read;
    7321           1 :   var _fwrite=env._fwrite;
    7322           1 :   var _time=env._time;
    7323           1 :   var _fprintf=env._fprintf;
    7324           1 :   var _exit=env._exit;
    7325           1 :   var _freopen=env._freopen;
    7326           1 :   var _llvm_pow_f64=env._llvm_pow_f64;
    7327           1 :   var _fgetc=env._fgetc;
    7328           1 :   var _fmod=env._fmod;
    7329           1 :   var _lseek=env._lseek;
    7330           1 :   var _rmdir=env._rmdir;
    7331           1 :   var _asin=env._asin;
    7332           1 :   var _floor=env._floor;
    7333           1 :   var _pwrite=env._pwrite;
    7334           1 :   var _localtime_r=env._localtime_r;
    7335           1 :   var _tzset=env._tzset;
    7336           1 :   var _open=env._open;
    7337           1 :   var _remove=env._remove;
    7338           1 :   var _snprintf=env._snprintf;
    7339           1 :   var __scanString=env.__scanString;
    7340           1 :   var _strftime=env._strftime;
    7341           1 :   var _fseek=env._fseek;
    7342           1 :   var _iscntrl=env._iscntrl;
    7343           1 :   var _isxdigit=env._isxdigit;
    7344           1 :   var _fclose=env._fclose;
    7345           1 :   var _log=env._log;
    7346           1 :   var _recv=env._recv;
    7347           1 :   var _tan=env._tan;
    7348           1 :   var _copysign=env._copysign;
    7349           1 :   var __getFloat=env.__getFloat;
    7350           1 :   var _fputc=env._fputc;
    7351           1 :   var _ispunct=env._ispunct;
    7352           1 :   var _ceil=env._ceil;
    7353           1 :   var _isspace=env._isspace;
    7354           1 :   var _fopen=env._fopen;
    7355           1 :   var _sin=env._sin;
    7356           1 :   var _acos=env._acos;
    7357           1 :   var _cosh=env._cosh;
    7358           1 :   var ___buildEnvironment=env.___buildEnvironment;
    7359           1 :   var _difftime=env._difftime;
    7360           1 :   var _ungetc=env._ungetc;
    7361           1 :   var _system=env._system;
    7362           1 :   var _fflush=env._fflush;
    7363           1 :   var _log10=env._log10;
    7364           1 :   var _fileno=env._fileno;
    7365           1 :   var __exit=env.__exit;
    7366           1 :   var __arraySum=env.__arraySum;
    7367           1 :   var _fgets=env._fgets;
    7368           1 :   var _atan=env._atan;
    7369           1 :   var _pread=env._pread;
    7370           1 :   var _mkport=env._mkport;
    7371           1 :   var _toupper=env._toupper;
    7372           1 :   var _feof=env._feof;
    7373           1 :   var ___errno_location=env.___errno_location;
    7374           1 :   var _clearerr=env._clearerr;
    7375           1 :   var _getenv=env._getenv;
    7376           1 :   var _strerror=env._strerror;
    7377           1 :   var _emscripten_longjmp=env._emscripten_longjmp;
    7378           1 :   var __formatString=env.__formatString;
    7379           1 :   var _fputs=env._fputs;
    7380           1 :   var _sqrt=env._sqrt;
    7381           1 :   var tempFloat = 0.0;
    7382           1 : 
    7383           1 : // EMSCRIPTEN_START_FUNCS
    7384      286438 : function _malloc(i12) {
    7385      286438 :  i12 = i12 | 0;
    7386      286438 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
    7387      286438 :  i1 = STACKTOP;
    7388      286438 :  do {
    7389      286438 :   if (i12 >>> 0 < 245) {
    7390      286438 :    if (i12 >>> 0 < 11) {
    7391      286438 :     i12 = 16;
    7392      286438 :    } else {
    7393      286438 :     i12 = i12 + 11 & -8;
    7394      286438 :    }
    7395      286438 :    i20 = i12 >>> 3;
    7396      286438 :    i18 = HEAP32[3228] | 0;
    7397      286438 :    i21 = i18 >>> i20;
    7398      286438 :    if ((i21 & 3 | 0) != 0) {
    7399      286438 :     i6 = (i21 & 1 ^ 1) + i20 | 0;
    7400      286438 :     i5 = i6 << 1;
    7401      286438 :     i3 = 12952 + (i5 << 2) | 0;
    7402      286438 :     i5 = 12952 + (i5 + 2 << 2) | 0;
    7403      286438 :     i7 = HEAP32[i5 >> 2] | 0;
    7404      286438 :     i2 = i7 + 8 | 0;
    7405      286438 :     i4 = HEAP32[i2 >> 2] | 0;
    7406      286438 :     do {
    7407      286438 :      if ((i3 | 0) != (i4 | 0)) {
    7408      286438 :       if (i4 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7409      286438 :        _abort();
    7410      286438 :       }
    7411      286438 :       i8 = i4 + 12 | 0;
    7412      286438 :       if ((HEAP32[i8 >> 2] | 0) == (i7 | 0)) {
    7413      286438 :        HEAP32[i8 >> 2] = i3;
    7414      286438 :        HEAP32[i5 >> 2] = i4;
    7415      286438 :        break;
    7416      286438 :       } else {
    7417      286438 :        _abort();
    7418      286438 :       }
    7419      286438 :      } else {
    7420      286438 :       HEAP32[3228] = i18 & ~(1 << i6);
    7421      286438 :      }
    7422      286438 :     } while (0);
    7423      286438 :     i32 = i6 << 3;
    7424      286438 :     HEAP32[i7 + 4 >> 2] = i32 | 3;
    7425      286438 :     i32 = i7 + (i32 | 4) | 0;
    7426      286438 :     HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
    7427      286438 :     i32 = i2;
    7428      286438 :     STACKTOP = i1;
    7429      286438 :     return i32 | 0;
    7430      286438 :    }
    7431      286438 :    if (i12 >>> 0 > (HEAP32[12920 >> 2] | 0) >>> 0) {
    7432      286438 :     if ((i21 | 0) != 0) {
    7433      286438 :      i7 = 2 << i20;
    7434      286438 :      i7 = i21 << i20 & (i7 | 0 - i7);
    7435      286438 :      i7 = (i7 & 0 - i7) + -1 | 0;
    7436      286438 :      i2 = i7 >>> 12 & 16;
    7437      286438 :      i7 = i7 >>> i2;
    7438      286438 :      i6 = i7 >>> 5 & 8;
    7439      286438 :      i7 = i7 >>> i6;
    7440      286438 :      i5 = i7 >>> 2 & 4;
    7441      286438 :      i7 = i7 >>> i5;
    7442      286438 :      i4 = i7 >>> 1 & 2;
    7443      286438 :      i7 = i7 >>> i4;
    7444      286438 :      i3 = i7 >>> 1 & 1;
    7445      286438 :      i3 = (i6 | i2 | i5 | i4 | i3) + (i7 >>> i3) | 0;
    7446      286438 :      i7 = i3 << 1;
    7447      286438 :      i4 = 12952 + (i7 << 2) | 0;
    7448      286438 :      i7 = 12952 + (i7 + 2 << 2) | 0;
    7449      286438 :      i5 = HEAP32[i7 >> 2] | 0;
    7450      286438 :      i2 = i5 + 8 | 0;
    7451      286438 :      i6 = HEAP32[i2 >> 2] | 0;
    7452      286438 :      do {
    7453      286438 :       if ((i4 | 0) != (i6 | 0)) {
    7454      286438 :        if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7455      286438 :         _abort();
    7456      286438 :        }
    7457      286438 :        i8 = i6 + 12 | 0;
    7458      286438 :        if ((HEAP32[i8 >> 2] | 0) == (i5 | 0)) {
    7459      286438 :         HEAP32[i8 >> 2] = i4;
    7460      286438 :         HEAP32[i7 >> 2] = i6;
    7461      286438 :         break;
    7462      286438 :        } else {
    7463      286438 :         _abort();
    7464      286438 :        }
    7465      286438 :       } else {
    7466      286438 :        HEAP32[3228] = i18 & ~(1 << i3);
    7467      286438 :       }
    7468      286438 :      } while (0);
    7469      286438 :      i6 = i3 << 3;
    7470      286438 :      i4 = i6 - i12 | 0;
    7471      286438 :      HEAP32[i5 + 4 >> 2] = i12 | 3;
    7472      286438 :      i3 = i5 + i12 | 0;
    7473      286438 :      HEAP32[i5 + (i12 | 4) >> 2] = i4 | 1;
    7474      286438 :      HEAP32[i5 + i6 >> 2] = i4;
    7475      286438 :      i6 = HEAP32[12920 >> 2] | 0;
    7476      286438 :      if ((i6 | 0) != 0) {
    7477      286438 :       i5 = HEAP32[12932 >> 2] | 0;
    7478      286438 :       i8 = i6 >>> 3;
    7479      286438 :       i9 = i8 << 1;
    7480      286438 :       i6 = 12952 + (i9 << 2) | 0;
    7481      286438 :       i7 = HEAP32[3228] | 0;
    7482      286438 :       i8 = 1 << i8;
    7483      286438 :       if ((i7 & i8 | 0) != 0) {
    7484      286438 :        i7 = 12952 + (i9 + 2 << 2) | 0;
    7485      286438 :        i8 = HEAP32[i7 >> 2] | 0;
    7486      286438 :        if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7487      286438 :         _abort();
    7488      286438 :        } else {
    7489      286438 :         i28 = i7;
    7490      286438 :         i27 = i8;
    7491      286438 :        }
    7492      286438 :       } else {
    7493      286438 :        HEAP32[3228] = i7 | i8;
    7494      286438 :        i28 = 12952 + (i9 + 2 << 2) | 0;
    7495      286438 :        i27 = i6;
    7496      286438 :       }
    7497      286438 :       HEAP32[i28 >> 2] = i5;
    7498      286438 :       HEAP32[i27 + 12 >> 2] = i5;
    7499      286438 :       HEAP32[i5 + 8 >> 2] = i27;
    7500      286438 :       HEAP32[i5 + 12 >> 2] = i6;
    7501      286438 :      }
    7502      286438 :      HEAP32[12920 >> 2] = i4;
    7503      286438 :      HEAP32[12932 >> 2] = i3;
    7504      286438 :      i32 = i2;
    7505      286438 :      STACKTOP = i1;
    7506      286438 :      return i32 | 0;
    7507      286438 :     }
    7508      286438 :     i18 = HEAP32[12916 >> 2] | 0;
    7509      286438 :     if ((i18 | 0) != 0) {
    7510      286438 :      i2 = (i18 & 0 - i18) + -1 | 0;
    7511      286438 :      i31 = i2 >>> 12 & 16;
    7512      286438 :      i2 = i2 >>> i31;
    7513      286438 :      i30 = i2 >>> 5 & 8;
    7514      286438 :      i2 = i2 >>> i30;
    7515      286438 :      i32 = i2 >>> 2 & 4;
    7516      286438 :      i2 = i2 >>> i32;
    7517      286438 :      i6 = i2 >>> 1 & 2;
    7518      286438 :      i2 = i2 >>> i6;
    7519      286438 :      i3 = i2 >>> 1 & 1;
    7520      286438 :      i3 = HEAP32[13216 + ((i30 | i31 | i32 | i6 | i3) + (i2 >>> i3) << 2) >> 2] | 0;
    7521      286438 :      i2 = (HEAP32[i3 + 4 >> 2] & -8) - i12 | 0;
    7522      286438 :      i6 = i3;
    7523      286438 :      while (1) {
    7524      286438 :       i5 = HEAP32[i6 + 16 >> 2] | 0;
    7525      286438 :       if ((i5 | 0) == 0) {
    7526      286438 :        i5 = HEAP32[i6 + 20 >> 2] | 0;
    7527      286438 :        if ((i5 | 0) == 0) {
    7528      286438 :         break;
    7529      286438 :        }
    7530      286438 :       }
    7531      286438 :       i6 = (HEAP32[i5 + 4 >> 2] & -8) - i12 | 0;
    7532      286438 :       i4 = i6 >>> 0 < i2 >>> 0;
    7533      286438 :       i2 = i4 ? i6 : i2;
    7534      286438 :       i6 = i5;
    7535      286438 :       i3 = i4 ? i5 : i3;
    7536      286438 :      }
    7537      286438 :      i6 = HEAP32[12928 >> 2] | 0;
    7538      286438 :      if (i3 >>> 0 < i6 >>> 0) {
    7539      286438 :       _abort();
    7540      286438 :      }
    7541      286438 :      i4 = i3 + i12 | 0;
    7542      286438 :      if (!(i3 >>> 0 < i4 >>> 0)) {
    7543      286438 :       _abort();
    7544      286438 :      }
    7545      286438 :      i5 = HEAP32[i3 + 24 >> 2] | 0;
    7546      286438 :      i7 = HEAP32[i3 + 12 >> 2] | 0;
    7547      286438 :      do {
    7548      286438 :       if ((i7 | 0) == (i3 | 0)) {
    7549      286438 :        i8 = i3 + 20 | 0;
    7550      286438 :        i7 = HEAP32[i8 >> 2] | 0;
    7551      286438 :        if ((i7 | 0) == 0) {
    7552      286438 :         i8 = i3 + 16 | 0;
    7553      286438 :         i7 = HEAP32[i8 >> 2] | 0;
    7554      286438 :         if ((i7 | 0) == 0) {
    7555      286438 :          i26 = 0;
    7556      286438 :          break;
    7557      286438 :         }
    7558      286438 :        }
    7559      286438 :        while (1) {
    7560      286438 :         i10 = i7 + 20 | 0;
    7561      286438 :         i9 = HEAP32[i10 >> 2] | 0;
    7562      286438 :         if ((i9 | 0) != 0) {
    7563      286438 :          i7 = i9;
    7564      286438 :          i8 = i10;
    7565      286438 :          continue;
    7566      286438 :         }
    7567      286438 :         i10 = i7 + 16 | 0;
    7568      286438 :         i9 = HEAP32[i10 >> 2] | 0;
    7569      286438 :         if ((i9 | 0) == 0) {
    7570      286438 :          break;
    7571      286438 :         } else {
    7572      286438 :          i7 = i9;
    7573      286438 :          i8 = i10;
    7574      286438 :         }
    7575      286438 :        }
    7576      286438 :        if (i8 >>> 0 < i6 >>> 0) {
    7577      286438 :         _abort();
    7578      286438 :        } else {
    7579      286438 :         HEAP32[i8 >> 2] = 0;
    7580      286438 :         i26 = i7;
    7581      286438 :         break;
    7582      286438 :        }
    7583      286438 :       } else {
    7584      286438 :        i8 = HEAP32[i3 + 8 >> 2] | 0;
    7585      286438 :        if (i8 >>> 0 < i6 >>> 0) {
    7586      286438 :         _abort();
    7587      286438 :        }
    7588      286438 :        i6 = i8 + 12 | 0;
    7589      286438 :        if ((HEAP32[i6 >> 2] | 0) != (i3 | 0)) {
    7590      286438 :         _abort();
    7591      286438 :        }
    7592      286438 :        i9 = i7 + 8 | 0;
    7593      286438 :        if ((HEAP32[i9 >> 2] | 0) == (i3 | 0)) {
    7594      286438 :         HEAP32[i6 >> 2] = i7;
    7595      286438 :         HEAP32[i9 >> 2] = i8;
    7596      286438 :         i26 = i7;
    7597      286438 :         break;
    7598      286438 :        } else {
    7599      286438 :         _abort();
    7600      286438 :        }
    7601      286438 :       }
    7602      286438 :      } while (0);
    7603      286438 :      do {
    7604      286438 :       if ((i5 | 0) != 0) {
    7605      286438 :        i7 = HEAP32[i3 + 28 >> 2] | 0;
    7606      286438 :        i6 = 13216 + (i7 << 2) | 0;
    7607      286438 :        if ((i3 | 0) == (HEAP32[i6 >> 2] | 0)) {
    7608      286438 :         HEAP32[i6 >> 2] = i26;
    7609      286438 :         if ((i26 | 0) == 0) {
    7610      286438 :          HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i7);
    7611      286438 :          break;
    7612      286438 :         }
    7613      286438 :        } else {
    7614      286438 :         if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7615      286438 :          _abort();
    7616      286438 :         }
    7617      286438 :         i6 = i5 + 16 | 0;
    7618      286438 :         if ((HEAP32[i6 >> 2] | 0) == (i3 | 0)) {
    7619      286438 :          HEAP32[i6 >> 2] = i26;
    7620      286438 :         } else {
    7621      286438 :          HEAP32[i5 + 20 >> 2] = i26;
    7622      286438 :         }
    7623      286438 :         if ((i26 | 0) == 0) {
    7624      286438 :          break;
    7625      286438 :         }
    7626      286438 :        }
    7627      286438 :        if (i26 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7628      286438 :         _abort();
    7629      286438 :        }
    7630      286438 :        HEAP32[i26 + 24 >> 2] = i5;
    7631      286438 :        i5 = HEAP32[i3 + 16 >> 2] | 0;
    7632      286438 :        do {
    7633      286438 :         if ((i5 | 0) != 0) {
    7634      286438 :          if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7635      286438 :           _abort();
    7636      286438 :          } else {
    7637      286438 :           HEAP32[i26 + 16 >> 2] = i5;
    7638      286438 :           HEAP32[i5 + 24 >> 2] = i26;
    7639      286438 :           break;
    7640      286438 :          }
    7641      286438 :         }
    7642      286438 :        } while (0);
    7643      286438 :        i5 = HEAP32[i3 + 20 >> 2] | 0;
    7644      286438 :        if ((i5 | 0) != 0) {
    7645      286438 :         if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7646      286438 :          _abort();
    7647      286438 :         } else {
    7648      286438 :          HEAP32[i26 + 20 >> 2] = i5;
    7649      286438 :          HEAP32[i5 + 24 >> 2] = i26;
    7650      286438 :          break;
    7651      286438 :         }
    7652      286438 :        }
    7653      286438 :       }
    7654      286438 :      } while (0);
    7655      286438 :      if (i2 >>> 0 < 16) {
    7656      286438 :       i32 = i2 + i12 | 0;
    7657      286438 :       HEAP32[i3 + 4 >> 2] = i32 | 3;
    7658      286438 :       i32 = i3 + (i32 + 4) | 0;
    7659      286438 :       HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
    7660      286438 :      } else {
    7661      286438 :       HEAP32[i3 + 4 >> 2] = i12 | 3;
    7662      286438 :       HEAP32[i3 + (i12 | 4) >> 2] = i2 | 1;
    7663      286438 :       HEAP32[i3 + (i2 + i12) >> 2] = i2;
    7664      286438 :       i6 = HEAP32[12920 >> 2] | 0;
    7665      286438 :       if ((i6 | 0) != 0) {
    7666      286438 :        i5 = HEAP32[12932 >> 2] | 0;
    7667      286438 :        i8 = i6 >>> 3;
    7668      286438 :        i9 = i8 << 1;
    7669      286438 :        i6 = 12952 + (i9 << 2) | 0;
    7670      286438 :        i7 = HEAP32[3228] | 0;
    7671      286438 :        i8 = 1 << i8;
    7672      286438 :        if ((i7 & i8 | 0) != 0) {
    7673      286438 :         i7 = 12952 + (i9 + 2 << 2) | 0;
    7674      286438 :         i8 = HEAP32[i7 >> 2] | 0;
    7675      286438 :         if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7676      286438 :          _abort();
    7677      286438 :         } else {
    7678      286438 :          i25 = i7;
    7679      286438 :          i24 = i8;
    7680      286438 :         }
    7681      286438 :        } else {
    7682      286438 :         HEAP32[3228] = i7 | i8;
    7683      286438 :         i25 = 12952 + (i9 + 2 << 2) | 0;
    7684      286438 :         i24 = i6;
    7685      286438 :        }
    7686      286438 :        HEAP32[i25 >> 2] = i5;
    7687      286438 :        HEAP32[i24 + 12 >> 2] = i5;
    7688      286438 :        HEAP32[i5 + 8 >> 2] = i24;
    7689      286438 :        HEAP32[i5 + 12 >> 2] = i6;
    7690      286438 :       }
    7691      286438 :       HEAP32[12920 >> 2] = i2;
    7692      286438 :       HEAP32[12932 >> 2] = i4;
    7693      286438 :      }
    7694      286438 :      i32 = i3 + 8 | 0;
    7695      286438 :      STACKTOP = i1;
    7696      286438 :      return i32 | 0;
    7697      286438 :     }
    7698      286438 :    }
    7699      286438 :   } else {
    7700      286438 :    if (!(i12 >>> 0 > 4294967231)) {
    7701      286438 :     i24 = i12 + 11 | 0;
    7702      286438 :     i12 = i24 & -8;
    7703      286438 :     i26 = HEAP32[12916 >> 2] | 0;
    7704      286438 :     if ((i26 | 0) != 0) {
    7705      286438 :      i25 = 0 - i12 | 0;
    7706      286438 :      i24 = i24 >>> 8;
    7707      286438 :      if ((i24 | 0) != 0) {
    7708      286438 :       if (i12 >>> 0 > 16777215) {
    7709      286438 :        i27 = 31;
    7710      286438 :       } else {
    7711      286438 :        i31 = (i24 + 1048320 | 0) >>> 16 & 8;
    7712      286438 :        i32 = i24 << i31;
    7713      286438 :        i30 = (i32 + 520192 | 0) >>> 16 & 4;
    7714      286438 :        i32 = i32 << i30;
    7715      286438 :        i27 = (i32 + 245760 | 0) >>> 16 & 2;
    7716      286438 :        i27 = 14 - (i30 | i31 | i27) + (i32 << i27 >>> 15) | 0;
    7717      286438 :        i27 = i12 >>> (i27 + 7 | 0) & 1 | i27 << 1;
    7718      286438 :       }
    7719      286438 :      } else {
    7720      286438 :       i27 = 0;
    7721      286438 :      }
    7722      286438 :      i30 = HEAP32[13216 + (i27 << 2) >> 2] | 0;
    7723      286438 :      L126 : do {
    7724      286438 :       if ((i30 | 0) == 0) {
    7725      286438 :        i29 = 0;
    7726      286438 :        i24 = 0;
    7727      286438 :       } else {
    7728      286438 :        if ((i27 | 0) == 31) {
    7729      286438 :         i24 = 0;
    7730      286438 :        } else {
    7731      286438 :         i24 = 25 - (i27 >>> 1) | 0;
    7732      286438 :        }
    7733      286438 :        i29 = 0;
    7734      286438 :        i28 = i12 << i24;
    7735      286438 :        i24 = 0;
    7736      286438 :        while (1) {
    7737      286438 :         i32 = HEAP32[i30 + 4 >> 2] & -8;
    7738      286438 :         i31 = i32 - i12 | 0;
    7739      286438 :         if (i31 >>> 0 < i25 >>> 0) {
    7740      286438 :          if ((i32 | 0) == (i12 | 0)) {
    7741      286438 :           i25 = i31;
    7742      286438 :           i29 = i30;
    7743      286438 :           i24 = i30;
    7744      286438 :           break L126;
    7745      286438 :          } else {
    7746      286438 :           i25 = i31;
    7747      286438 :           i24 = i30;
    7748      286438 :          }
    7749      286438 :         }
    7750      286438 :         i31 = HEAP32[i30 + 20 >> 2] | 0;
    7751      286438 :         i30 = HEAP32[i30 + (i28 >>> 31 << 2) + 16 >> 2] | 0;
    7752      286438 :         i29 = (i31 | 0) == 0 | (i31 | 0) == (i30 | 0) ? i29 : i31;
    7753      286438 :         if ((i30 | 0) == 0) {
    7754      286438 :          break;
    7755      286438 :         } else {
    7756      286438 :          i28 = i28 << 1;
    7757      286438 :         }
    7758      286438 :        }
    7759      286438 :       }
    7760      286438 :      } while (0);
    7761      286438 :      if ((i29 | 0) == 0 & (i24 | 0) == 0) {
    7762      286438 :       i32 = 2 << i27;
    7763      286438 :       i26 = i26 & (i32 | 0 - i32);
    7764      286438 :       if ((i26 | 0) == 0) {
    7765      286438 :        break;
    7766      286438 :       }
    7767      286438 :       i32 = (i26 & 0 - i26) + -1 | 0;
    7768      286438 :       i28 = i32 >>> 12 & 16;
    7769      286438 :       i32 = i32 >>> i28;
    7770      286438 :       i27 = i32 >>> 5 & 8;
    7771      286438 :       i32 = i32 >>> i27;
    7772      286438 :       i30 = i32 >>> 2 & 4;
    7773      286438 :       i32 = i32 >>> i30;
    7774      286438 :       i31 = i32 >>> 1 & 2;
    7775      286438 :       i32 = i32 >>> i31;
    7776      286438 :       i29 = i32 >>> 1 & 1;
    7777      286438 :       i29 = HEAP32[13216 + ((i27 | i28 | i30 | i31 | i29) + (i32 >>> i29) << 2) >> 2] | 0;
    7778      286438 :      }
    7779      286438 :      if ((i29 | 0) != 0) {
    7780      286438 :       while (1) {
    7781      286438 :        i27 = (HEAP32[i29 + 4 >> 2] & -8) - i12 | 0;
    7782      286438 :        i26 = i27 >>> 0 < i25 >>> 0;
    7783      286438 :        i25 = i26 ? i27 : i25;
    7784      286438 :        i24 = i26 ? i29 : i24;
    7785      286438 :        i26 = HEAP32[i29 + 16 >> 2] | 0;
    7786      286438 :        if ((i26 | 0) != 0) {
    7787      286438 :         i29 = i26;
    7788      286438 :         continue;
    7789      286438 :        }
    7790      286438 :        i29 = HEAP32[i29 + 20 >> 2] | 0;
    7791      286438 :        if ((i29 | 0) == 0) {
    7792      286438 :         break;
    7793      286438 :        }
    7794      286438 :       }
    7795      286438 :      }
    7796      286438 :      if ((i24 | 0) != 0 ? i25 >>> 0 < ((HEAP32[12920 >> 2] | 0) - i12 | 0) >>> 0 : 0) {
    7797      286438 :       i4 = HEAP32[12928 >> 2] | 0;
    7798      286438 :       if (i24 >>> 0 < i4 >>> 0) {
    7799      286438 :        _abort();
    7800      286438 :       }
    7801      286438 :       i2 = i24 + i12 | 0;
    7802      286438 :       if (!(i24 >>> 0 < i2 >>> 0)) {
    7803      286438 :        _abort();
    7804      286438 :       }
    7805      286438 :       i3 = HEAP32[i24 + 24 >> 2] | 0;
    7806      286438 :       i6 = HEAP32[i24 + 12 >> 2] | 0;
    7807      286438 :       do {
    7808      286438 :        if ((i6 | 0) == (i24 | 0)) {
    7809      286438 :         i6 = i24 + 20 | 0;
    7810      286438 :         i5 = HEAP32[i6 >> 2] | 0;
    7811      286438 :         if ((i5 | 0) == 0) {
    7812      286438 :          i6 = i24 + 16 | 0;
    7813      286438 :          i5 = HEAP32[i6 >> 2] | 0;
    7814      286438 :          if ((i5 | 0) == 0) {
    7815      286438 :           i22 = 0;
    7816      286438 :           break;
    7817      286438 :          }
    7818      286438 :         }
    7819      286438 :         while (1) {
    7820      286438 :          i8 = i5 + 20 | 0;
    7821      286438 :          i7 = HEAP32[i8 >> 2] | 0;
    7822      286438 :          if ((i7 | 0) != 0) {
    7823      286438 :           i5 = i7;
    7824      286438 :           i6 = i8;
    7825      286438 :           continue;
    7826      286438 :          }
    7827      286438 :          i7 = i5 + 16 | 0;
    7828      286438 :          i8 = HEAP32[i7 >> 2] | 0;
    7829      286438 :          if ((i8 | 0) == 0) {
    7830      286438 :           break;
    7831      286438 :          } else {
    7832      286438 :           i5 = i8;
    7833      286438 :           i6 = i7;
    7834      286438 :          }
    7835      286438 :         }
    7836      286438 :         if (i6 >>> 0 < i4 >>> 0) {
    7837      286438 :          _abort();
    7838      286438 :         } else {
    7839      286438 :          HEAP32[i6 >> 2] = 0;
    7840      286438 :          i22 = i5;
    7841      286438 :          break;
    7842      286438 :         }
    7843      286438 :        } else {
    7844      286438 :         i5 = HEAP32[i24 + 8 >> 2] | 0;
    7845      286438 :         if (i5 >>> 0 < i4 >>> 0) {
    7846      286438 :          _abort();
    7847      286438 :         }
    7848      286438 :         i7 = i5 + 12 | 0;
    7849      286438 :         if ((HEAP32[i7 >> 2] | 0) != (i24 | 0)) {
    7850      286438 :          _abort();
    7851      286438 :         }
    7852      286438 :         i4 = i6 + 8 | 0;
    7853      286438 :         if ((HEAP32[i4 >> 2] | 0) == (i24 | 0)) {
    7854      286438 :          HEAP32[i7 >> 2] = i6;
    7855      286438 :          HEAP32[i4 >> 2] = i5;
    7856      286438 :          i22 = i6;
    7857      286438 :          break;
    7858      286438 :         } else {
    7859      286438 :          _abort();
    7860      286438 :         }
    7861      286438 :        }
    7862      286438 :       } while (0);
    7863      286438 :       do {
    7864      286438 :        if ((i3 | 0) != 0) {
    7865      286438 :         i4 = HEAP32[i24 + 28 >> 2] | 0;
    7866      286438 :         i5 = 13216 + (i4 << 2) | 0;
    7867      286438 :         if ((i24 | 0) == (HEAP32[i5 >> 2] | 0)) {
    7868      286438 :          HEAP32[i5 >> 2] = i22;
    7869      286438 :          if ((i22 | 0) == 0) {
    7870      286438 :           HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i4);
    7871      286438 :           break;
    7872      286438 :          }
    7873      286438 :         } else {
    7874      286438 :          if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7875      286438 :           _abort();
    7876      286438 :          }
    7877      286438 :          i4 = i3 + 16 | 0;
    7878      286438 :          if ((HEAP32[i4 >> 2] | 0) == (i24 | 0)) {
    7879      286438 :           HEAP32[i4 >> 2] = i22;
    7880      286438 :          } else {
    7881      286438 :           HEAP32[i3 + 20 >> 2] = i22;
    7882      286438 :          }
    7883      286438 :          if ((i22 | 0) == 0) {
    7884      286438 :           break;
    7885      286438 :          }
    7886      286438 :         }
    7887      286438 :         if (i22 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7888      286438 :          _abort();
    7889      286438 :         }
    7890      286438 :         HEAP32[i22 + 24 >> 2] = i3;
    7891      286438 :         i3 = HEAP32[i24 + 16 >> 2] | 0;
    7892      286438 :         do {
    7893      286438 :          if ((i3 | 0) != 0) {
    7894      286438 :           if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7895      286438 :            _abort();
    7896      286438 :           } else {
    7897      286438 :            HEAP32[i22 + 16 >> 2] = i3;
    7898      286438 :            HEAP32[i3 + 24 >> 2] = i22;
    7899      286438 :            break;
    7900      286438 :           }
    7901      286438 :          }
    7902      286438 :         } while (0);
    7903      286438 :         i3 = HEAP32[i24 + 20 >> 2] | 0;
    7904      286438 :         if ((i3 | 0) != 0) {
    7905      286438 :          if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7906      286438 :           _abort();
    7907      286438 :          } else {
    7908      286438 :           HEAP32[i22 + 20 >> 2] = i3;
    7909      286438 :           HEAP32[i3 + 24 >> 2] = i22;
    7910      286438 :           break;
    7911      286438 :          }
    7912      286438 :         }
    7913      286438 :        }
    7914      286438 :       } while (0);
    7915      286438 :       L204 : do {
    7916      286438 :        if (!(i25 >>> 0 < 16)) {
    7917      286438 :         HEAP32[i24 + 4 >> 2] = i12 | 3;
    7918      286438 :         HEAP32[i24 + (i12 | 4) >> 2] = i25 | 1;
    7919      286438 :         HEAP32[i24 + (i25 + i12) >> 2] = i25;
    7920      286438 :         i4 = i25 >>> 3;
    7921      286438 :         if (i25 >>> 0 < 256) {
    7922      286438 :          i6 = i4 << 1;
    7923      286438 :          i3 = 12952 + (i6 << 2) | 0;
    7924      286438 :          i5 = HEAP32[3228] | 0;
    7925      286438 :          i4 = 1 << i4;
    7926      286438 :          if ((i5 & i4 | 0) != 0) {
    7927      286438 :           i5 = 12952 + (i6 + 2 << 2) | 0;
    7928      286438 :           i4 = HEAP32[i5 >> 2] | 0;
    7929      286438 :           if (i4 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    7930      286438 :            _abort();
    7931      286438 :           } else {
    7932      286438 :            i21 = i5;
    7933      286438 :            i20 = i4;
    7934      286438 :           }
    7935      286438 :          } else {
    7936      286438 :           HEAP32[3228] = i5 | i4;
    7937      286438 :           i21 = 12952 + (i6 + 2 << 2) | 0;
    7938      286438 :           i20 = i3;
    7939      286438 :          }
    7940      286438 :          HEAP32[i21 >> 2] = i2;
    7941      286438 :          HEAP32[i20 + 12 >> 2] = i2;
    7942      286438 :          HEAP32[i24 + (i12 + 8) >> 2] = i20;
    7943      286438 :          HEAP32[i24 + (i12 + 12) >> 2] = i3;
    7944      286438 :          break;
    7945      286438 :         }
    7946      286438 :         i3 = i25 >>> 8;
    7947      286438 :         if ((i3 | 0) != 0) {
    7948      286438 :          if (i25 >>> 0 > 16777215) {
    7949      286438 :           i3 = 31;
    7950      286438 :          } else {
    7951      286438 :           i31 = (i3 + 1048320 | 0) >>> 16 & 8;
    7952      286438 :           i32 = i3 << i31;
    7953      286438 :           i30 = (i32 + 520192 | 0) >>> 16 & 4;
    7954      286438 :           i32 = i32 << i30;
    7955      286438 :           i3 = (i32 + 245760 | 0) >>> 16 & 2;
    7956      286438 :           i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0;
    7957      286438 :           i3 = i25 >>> (i3 + 7 | 0) & 1 | i3 << 1;
    7958      286438 :          }
    7959      286438 :         } else {
    7960      286438 :          i3 = 0;
    7961      286438 :         }
    7962      286438 :         i6 = 13216 + (i3 << 2) | 0;
    7963      286438 :         HEAP32[i24 + (i12 + 28) >> 2] = i3;
    7964      286438 :         HEAP32[i24 + (i12 + 20) >> 2] = 0;
    7965      286438 :         HEAP32[i24 + (i12 + 16) >> 2] = 0;
    7966      286438 :         i4 = HEAP32[12916 >> 2] | 0;
    7967      286438 :         i5 = 1 << i3;
    7968      286438 :         if ((i4 & i5 | 0) == 0) {
    7969      286438 :          HEAP32[12916 >> 2] = i4 | i5;
    7970      286438 :          HEAP32[i6 >> 2] = i2;
    7971      286438 :          HEAP32[i24 + (i12 + 24) >> 2] = i6;
    7972      286438 :          HEAP32[i24 + (i12 + 12) >> 2] = i2;
    7973      286438 :          HEAP32[i24 + (i12 + 8) >> 2] = i2;
    7974      286438 :          break;
    7975      286438 :         }
    7976      286438 :         i4 = HEAP32[i6 >> 2] | 0;
    7977      286438 :         if ((i3 | 0) == 31) {
    7978      286438 :          i3 = 0;
    7979      286438 :         } else {
    7980      286438 :          i3 = 25 - (i3 >>> 1) | 0;
    7981      286438 :         }
    7982      286438 :         L225 : do {
    7983      286438 :          if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i25 | 0)) {
    7984      286438 :           i3 = i25 << i3;
    7985      286438 :           while (1) {
    7986      286438 :            i6 = i4 + (i3 >>> 31 << 2) + 16 | 0;
    7987      286438 :            i5 = HEAP32[i6 >> 2] | 0;
    7988      286438 :            if ((i5 | 0) == 0) {
    7989      286438 :             break;
    7990      286438 :            }
    7991      286438 :            if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i25 | 0)) {
    7992      286438 :             i18 = i5;
    7993      286438 :             break L225;
    7994      286438 :            } else {
    7995      286438 :             i3 = i3 << 1;
    7996      286438 :             i4 = i5;
    7997      286438 :            }
    7998      286438 :           }
    7999      286438 :           if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8000      286438 :            _abort();
    8001      286438 :           } else {
    8002      286438 :            HEAP32[i6 >> 2] = i2;
    8003      286438 :            HEAP32[i24 + (i12 + 24) >> 2] = i4;
    8004      286438 :            HEAP32[i24 + (i12 + 12) >> 2] = i2;
    8005      286438 :            HEAP32[i24 + (i12 + 8) >> 2] = i2;
    8006      286438 :            break L204;
    8007      286438 :           }
    8008      286438 :          } else {
    8009      286438 :           i18 = i4;
    8010      286438 :          }
    8011      286438 :         } while (0);
    8012      286438 :         i4 = i18 + 8 | 0;
    8013      286438 :         i3 = HEAP32[i4 >> 2] | 0;
    8014      286438 :         i5 = HEAP32[12928 >> 2] | 0;
    8015      286438 :         if (i18 >>> 0 < i5 >>> 0) {
    8016      286438 :          _abort();
    8017      286438 :         }
    8018      286438 :         if (i3 >>> 0 < i5 >>> 0) {
    8019      286438 :          _abort();
    8020      286438 :         } else {
    8021      286438 :          HEAP32[i3 + 12 >> 2] = i2;
    8022      286438 :          HEAP32[i4 >> 2] = i2;
    8023      286438 :          HEAP32[i24 + (i12 + 8) >> 2] = i3;
    8024      286438 :          HEAP32[i24 + (i12 + 12) >> 2] = i18;
    8025      286438 :          HEAP32[i24 + (i12 + 24) >> 2] = 0;
    8026      286438 :          break;
    8027      286438 :         }
    8028      286438 :        } else {
    8029      286438 :         i32 = i25 + i12 | 0;
    8030      286438 :         HEAP32[i24 + 4 >> 2] = i32 | 3;
    8031      286438 :         i32 = i24 + (i32 + 4) | 0;
    8032      286438 :         HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
    8033      286438 :        }
    8034      286438 :       } while (0);
    8035      286438 :       i32 = i24 + 8 | 0;
    8036      286438 :       STACKTOP = i1;
    8037      286438 :       return i32 | 0;
    8038      286438 :      }
    8039      286438 :     }
    8040      286438 :    } else {
    8041      286438 :     i12 = -1;
    8042      286438 :    }
    8043      286438 :   }
    8044      286438 :  } while (0);
    8045      286438 :  i18 = HEAP32[12920 >> 2] | 0;
    8046      286438 :  if (!(i12 >>> 0 > i18 >>> 0)) {
    8047      286438 :   i3 = i18 - i12 | 0;
    8048      286438 :   i2 = HEAP32[12932 >> 2] | 0;
    8049      286438 :   if (i3 >>> 0 > 15) {
    8050      286438 :    HEAP32[12932 >> 2] = i2 + i12;
    8051      286438 :    HEAP32[12920 >> 2] = i3;
    8052      286438 :    HEAP32[i2 + (i12 + 4) >> 2] = i3 | 1;
    8053      286438 :    HEAP32[i2 + i18 >> 2] = i3;
    8054      286438 :    HEAP32[i2 + 4 >> 2] = i12 | 3;
    8055      286438 :   } else {
    8056      286438 :    HEAP32[12920 >> 2] = 0;
    8057      286438 :    HEAP32[12932 >> 2] = 0;
    8058      286438 :    HEAP32[i2 + 4 >> 2] = i18 | 3;
    8059      286438 :    i32 = i2 + (i18 + 4) | 0;
    8060      286438 :    HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
    8061      286438 :   }
    8062      286438 :   i32 = i2 + 8 | 0;
    8063      286438 :   STACKTOP = i1;
    8064      286438 :   return i32 | 0;
    8065      286438 :  }
    8066      286438 :  i18 = HEAP32[12924 >> 2] | 0;
    8067      286438 :  if (i12 >>> 0 < i18 >>> 0) {
    8068      286438 :   i31 = i18 - i12 | 0;
    8069      286438 :   HEAP32[12924 >> 2] = i31;
    8070      286438 :   i32 = HEAP32[12936 >> 2] | 0;
    8071      286438 :   HEAP32[12936 >> 2] = i32 + i12;
    8072      286438 :   HEAP32[i32 + (i12 + 4) >> 2] = i31 | 1;
    8073      286438 :   HEAP32[i32 + 4 >> 2] = i12 | 3;
    8074      286438 :   i32 = i32 + 8 | 0;
    8075      286438 :   STACKTOP = i1;
    8076      286438 :   return i32 | 0;
    8077      286438 :  }
    8078      286438 :  do {
    8079      286438 :   if ((HEAP32[3346] | 0) == 0) {
    8080      286438 :    i18 = _sysconf(30) | 0;
    8081      286438 :    if ((i18 + -1 & i18 | 0) == 0) {
    8082      286438 :     HEAP32[13392 >> 2] = i18;
    8083      286438 :     HEAP32[13388 >> 2] = i18;
    8084      286438 :     HEAP32[13396 >> 2] = -1;
    8085      286438 :     HEAP32[13400 >> 2] = -1;
    8086      286438 :     HEAP32[13404 >> 2] = 0;
    8087      286438 :     HEAP32[13356 >> 2] = 0;
    8088      286438 :     HEAP32[3346] = (_time(0) | 0) & -16 ^ 1431655768;
    8089      286438 :     break;
    8090      286438 :    } else {
    8091      286438 :     _abort();
    8092      286438 :    }
    8093      286438 :   }
    8094      286438 :  } while (0);
    8095      286438 :  i20 = i12 + 48 | 0;
    8096      286438 :  i25 = HEAP32[13392 >> 2] | 0;
    8097      286438 :  i21 = i12 + 47 | 0;
    8098      286438 :  i22 = i25 + i21 | 0;
    8099      286438 :  i25 = 0 - i25 | 0;
    8100      286438 :  i18 = i22 & i25;
    8101      286438 :  if (!(i18 >>> 0 > i12 >>> 0)) {
    8102      286438 :   i32 = 0;
    8103      286438 :   STACKTOP = i1;
    8104      286438 :   return i32 | 0;
    8105      286438 :  }
    8106      286438 :  i24 = HEAP32[13352 >> 2] | 0;
    8107      286438 :  if ((i24 | 0) != 0 ? (i31 = HEAP32[13344 >> 2] | 0, i32 = i31 + i18 | 0, i32 >>> 0 <= i31 >>> 0 | i32 >>> 0 > i24 >>> 0) : 0) {
    8108      286438 :   i32 = 0;
    8109      286438 :   STACKTOP = i1;
    8110      286438 :   return i32 | 0;
    8111      286438 :  }
    8112      286438 :  L269 : do {
    8113      286438 :   if ((HEAP32[13356 >> 2] & 4 | 0) == 0) {
    8114      286438 :    i26 = HEAP32[12936 >> 2] | 0;
    8115      286438 :    L271 : do {
    8116      286438 :     if ((i26 | 0) != 0) {
    8117      286438 :      i24 = 13360 | 0;
    8118      286438 :      while (1) {
    8119      286438 :       i27 = HEAP32[i24 >> 2] | 0;
    8120      286438 :       if (!(i27 >>> 0 > i26 >>> 0) ? (i23 = i24 + 4 | 0, (i27 + (HEAP32[i23 >> 2] | 0) | 0) >>> 0 > i26 >>> 0) : 0) {
    8121      286438 :        break;
    8122      286438 :       }
    8123      286438 :       i24 = HEAP32[i24 + 8 >> 2] | 0;
    8124      286438 :       if ((i24 | 0) == 0) {
    8125      286438 :        i13 = 182;
    8126      286438 :        break L271;
    8127      286438 :       }
    8128      286438 :      }
    8129      286438 :      if ((i24 | 0) != 0) {
    8130      286438 :       i25 = i22 - (HEAP32[12924 >> 2] | 0) & i25;
    8131      286438 :       if (i25 >>> 0 < 2147483647) {
    8132      286438 :        i13 = _sbrk(i25 | 0) | 0;
    8133      286438 :        i26 = (i13 | 0) == ((HEAP32[i24 >> 2] | 0) + (HEAP32[i23 >> 2] | 0) | 0);
    8134      286438 :        i22 = i13;
    8135      286438 :        i24 = i25;
    8136      286438 :        i23 = i26 ? i13 : -1;
    8137      286438 :        i25 = i26 ? i25 : 0;
    8138      286438 :        i13 = 191;
    8139      286438 :       } else {
    8140      286438 :        i25 = 0;
    8141      286438 :       }
    8142      286438 :      } else {
    8143      286438 :       i13 = 182;
    8144      286438 :      }
    8145      286438 :     } else {
    8146      286438 :      i13 = 182;
    8147      286438 :     }
    8148      286438 :    } while (0);
    8149      286438 :    do {
    8150      286438 :     if ((i13 | 0) == 182) {
    8151      286438 :      i23 = _sbrk(0) | 0;
    8152      286438 :      if ((i23 | 0) != (-1 | 0)) {
    8153      286438 :       i24 = i23;
    8154      286438 :       i22 = HEAP32[13388 >> 2] | 0;
    8155      286438 :       i25 = i22 + -1 | 0;
    8156      286438 :       if ((i25 & i24 | 0) == 0) {
    8157      286438 :        i25 = i18;
    8158      286438 :       } else {
    8159      286438 :        i25 = i18 - i24 + (i25 + i24 & 0 - i22) | 0;
    8160      286438 :       }
    8161      286438 :       i24 = HEAP32[13344 >> 2] | 0;
    8162      286438 :       i26 = i24 + i25 | 0;
    8163      286438 :       if (i25 >>> 0 > i12 >>> 0 & i25 >>> 0 < 2147483647) {
    8164      286438 :        i22 = HEAP32[13352 >> 2] | 0;
    8165      286438 :        if ((i22 | 0) != 0 ? i26 >>> 0 <= i24 >>> 0 | i26 >>> 0 > i22 >>> 0 : 0) {
    8166      286438 :         i25 = 0;
    8167      286438 :         break;
    8168      286438 :        }
    8169      286438 :        i22 = _sbrk(i25 | 0) | 0;
    8170      286438 :        i13 = (i22 | 0) == (i23 | 0);
    8171      286438 :        i24 = i25;
    8172      286438 :        i23 = i13 ? i23 : -1;
    8173      286438 :        i25 = i13 ? i25 : 0;
    8174      286438 :        i13 = 191;
    8175      286438 :       } else {
    8176      286438 :        i25 = 0;
    8177      286438 :       }
    8178      286438 :      } else {
    8179      286438 :       i25 = 0;
    8180      286438 :      }
    8181      286438 :     }
    8182      286438 :    } while (0);
    8183      286438 :    L291 : do {
    8184      286438 :     if ((i13 | 0) == 191) {
    8185      286438 :      i13 = 0 - i24 | 0;
    8186      286438 :      if ((i23 | 0) != (-1 | 0)) {
    8187      286438 :       i17 = i23;
    8188      286438 :       i14 = i25;
    8189      286438 :       i13 = 202;
    8190      286438 :       break L269;
    8191      286438 :      }
    8192      286438 :      do {
    8193      286438 :       if ((i22 | 0) != (-1 | 0) & i24 >>> 0 < 2147483647 & i24 >>> 0 < i20 >>> 0 ? (i19 = HEAP32[13392 >> 2] | 0, i19 = i21 - i24 + i19 & 0 - i19, i19 >>> 0 < 2147483647) : 0) {
    8194      286438 :        if ((_sbrk(i19 | 0) | 0) == (-1 | 0)) {
    8195      286438 :         _sbrk(i13 | 0) | 0;
    8196      286438 :         break L291;
    8197      286438 :        } else {
    8198      286438 :         i24 = i19 + i24 | 0;
    8199      286438 :         break;
    8200      286438 :        }
    8201      286438 :       }
    8202      286438 :      } while (0);
    8203      286438 :      if ((i22 | 0) != (-1 | 0)) {
    8204      286438 :       i17 = i22;
    8205      286438 :       i14 = i24;
    8206      286438 :       i13 = 202;
    8207      286438 :       break L269;
    8208      286438 :      }
    8209      286438 :     }
    8210      286438 :    } while (0);
    8211      286438 :    HEAP32[13356 >> 2] = HEAP32[13356 >> 2] | 4;
    8212      286438 :    i13 = 199;
    8213      286438 :   } else {
    8214      286438 :    i25 = 0;
    8215      286438 :    i13 = 199;
    8216      286438 :   }
    8217      286438 :  } while (0);
    8218      286438 :  if ((((i13 | 0) == 199 ? i18 >>> 0 < 2147483647 : 0) ? (i17 = _sbrk(i18 | 0) | 0, i16 = _sbrk(0) | 0, (i16 | 0) != (-1 | 0) & (i17 | 0) != (-1 | 0) & i17 >>> 0 < i16 >>> 0) : 0) ? (i15 = i16 - i17 | 0, i14 = i15 >>> 0 > (i12 + 40 | 0) >>> 0, i14) : 0) {
    8219      286438 :   i14 = i14 ? i15 : i25;
    8220      286438 :   i13 = 202;
    8221      286438 :  }
    8222      286438 :  if ((i13 | 0) == 202) {
    8223      286438 :   i15 = (HEAP32[13344 >> 2] | 0) + i14 | 0;
    8224      286438 :   HEAP32[13344 >> 2] = i15;
    8225      286438 :   if (i15 >>> 0 > (HEAP32[13348 >> 2] | 0) >>> 0) {
    8226      286438 :    HEAP32[13348 >> 2] = i15;
    8227      286438 :   }
    8228      286438 :   i15 = HEAP32[12936 >> 2] | 0;
    8229      286438 :   L311 : do {
    8230      286438 :    if ((i15 | 0) != 0) {
    8231      286438 :     i21 = 13360 | 0;
    8232      286438 :     while (1) {
    8233      286438 :      i16 = HEAP32[i21 >> 2] | 0;
    8234      286438 :      i19 = i21 + 4 | 0;
    8235      286438 :      i20 = HEAP32[i19 >> 2] | 0;
    8236      286438 :      if ((i17 | 0) == (i16 + i20 | 0)) {
    8237      286438 :       i13 = 214;
    8238      286438 :       break;
    8239      286438 :      }
    8240      286438 :      i18 = HEAP32[i21 + 8 >> 2] | 0;
    8241      286438 :      if ((i18 | 0) == 0) {
    8242      286438 :       break;
    8243      286438 :      } else {
    8244      286438 :       i21 = i18;
    8245      286438 :      }
    8246      286438 :     }
    8247      286438 :     if (((i13 | 0) == 214 ? (HEAP32[i21 + 12 >> 2] & 8 | 0) == 0 : 0) ? i15 >>> 0 >= i16 >>> 0 & i15 >>> 0 < i17 >>> 0 : 0) {
    8248      286438 :      HEAP32[i19 >> 2] = i20 + i14;
    8249      286438 :      i2 = (HEAP32[12924 >> 2] | 0) + i14 | 0;
    8250      286438 :      i3 = i15 + 8 | 0;
    8251      286438 :      if ((i3 & 7 | 0) == 0) {
    8252      286438 :       i3 = 0;
    8253      286438 :      } else {
    8254      286438 :       i3 = 0 - i3 & 7;
    8255      286438 :      }
    8256      286438 :      i32 = i2 - i3 | 0;
    8257      286438 :      HEAP32[12936 >> 2] = i15 + i3;
    8258      286438 :      HEAP32[12924 >> 2] = i32;
    8259      286438 :      HEAP32[i15 + (i3 + 4) >> 2] = i32 | 1;
    8260      286438 :      HEAP32[i15 + (i2 + 4) >> 2] = 40;
    8261      286438 :      HEAP32[12940 >> 2] = HEAP32[13400 >> 2];
    8262      286438 :      break;
    8263      286438 :     }
    8264      286438 :     if (i17 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8265      286438 :      HEAP32[12928 >> 2] = i17;
    8266      286438 :     }
    8267      286438 :     i19 = i17 + i14 | 0;
    8268      286438 :     i16 = 13360 | 0;
    8269      286438 :     while (1) {
    8270      286438 :      if ((HEAP32[i16 >> 2] | 0) == (i19 | 0)) {
    8271      286438 :       i13 = 224;
    8272      286438 :       break;
    8273      286438 :      }
    8274      286438 :      i18 = HEAP32[i16 + 8 >> 2] | 0;
    8275      286438 :      if ((i18 | 0) == 0) {
    8276      286438 :       break;
    8277      286438 :      } else {
    8278      286438 :       i16 = i18;
    8279      286438 :      }
    8280      286438 :     }
    8281      286438 :     if ((i13 | 0) == 224 ? (HEAP32[i16 + 12 >> 2] & 8 | 0) == 0 : 0) {
    8282      286438 :      HEAP32[i16 >> 2] = i17;
    8283      286438 :      i6 = i16 + 4 | 0;
    8284      286438 :      HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i14;
    8285      286438 :      i6 = i17 + 8 | 0;
    8286      286438 :      if ((i6 & 7 | 0) == 0) {
    8287      286438 :       i6 = 0;
    8288      286438 :      } else {
    8289      286438 :       i6 = 0 - i6 & 7;
    8290      286438 :      }
    8291      286438 :      i7 = i17 + (i14 + 8) | 0;
    8292      286438 :      if ((i7 & 7 | 0) == 0) {
    8293      286438 :       i13 = 0;
    8294      286438 :      } else {
    8295      286438 :       i13 = 0 - i7 & 7;
    8296      286438 :      }
    8297      286438 :      i15 = i17 + (i13 + i14) | 0;
    8298      286438 :      i8 = i6 + i12 | 0;
    8299      286438 :      i7 = i17 + i8 | 0;
    8300      286438 :      i10 = i15 - (i17 + i6) - i12 | 0;
    8301      286438 :      HEAP32[i17 + (i6 + 4) >> 2] = i12 | 3;
    8302      286438 :      L348 : do {
    8303      286438 :       if ((i15 | 0) != (HEAP32[12936 >> 2] | 0)) {
    8304      286438 :        if ((i15 | 0) == (HEAP32[12932 >> 2] | 0)) {
    8305      286438 :         i32 = (HEAP32[12920 >> 2] | 0) + i10 | 0;
    8306      286438 :         HEAP32[12920 >> 2] = i32;
    8307      286438 :         HEAP32[12932 >> 2] = i7;
    8308      286438 :         HEAP32[i17 + (i8 + 4) >> 2] = i32 | 1;
    8309      286438 :         HEAP32[i17 + (i32 + i8) >> 2] = i32;
    8310      286438 :         break;
    8311      286438 :        }
    8312      286438 :        i12 = i14 + 4 | 0;
    8313      286438 :        i18 = HEAP32[i17 + (i12 + i13) >> 2] | 0;
    8314      286438 :        if ((i18 & 3 | 0) == 1) {
    8315      286438 :         i11 = i18 & -8;
    8316      286438 :         i16 = i18 >>> 3;
    8317      286438 :         do {
    8318      286438 :          if (!(i18 >>> 0 < 256)) {
    8319      286438 :           i9 = HEAP32[i17 + ((i13 | 24) + i14) >> 2] | 0;
    8320      286438 :           i19 = HEAP32[i17 + (i14 + 12 + i13) >> 2] | 0;
    8321      286438 :           do {
    8322      286438 :            if ((i19 | 0) == (i15 | 0)) {
    8323      286438 :             i19 = i13 | 16;
    8324      286438 :             i18 = i17 + (i12 + i19) | 0;
    8325      286438 :             i16 = HEAP32[i18 >> 2] | 0;
    8326      286438 :             if ((i16 | 0) == 0) {
    8327      286438 :              i18 = i17 + (i19 + i14) | 0;
    8328      286438 :              i16 = HEAP32[i18 >> 2] | 0;
    8329      286438 :              if ((i16 | 0) == 0) {
    8330      286438 :               i5 = 0;
    8331      286438 :               break;
    8332      286438 :              }
    8333      286438 :             }
    8334      286438 :             while (1) {
    8335      286438 :              i20 = i16 + 20 | 0;
    8336      286438 :              i19 = HEAP32[i20 >> 2] | 0;
    8337      286438 :              if ((i19 | 0) != 0) {
    8338      286438 :               i16 = i19;
    8339      286438 :               i18 = i20;
    8340      286438 :               continue;
    8341      286438 :              }
    8342      286438 :              i19 = i16 + 16 | 0;
    8343      286438 :              i20 = HEAP32[i19 >> 2] | 0;
    8344      286438 :              if ((i20 | 0) == 0) {
    8345      286438 :               break;
    8346      286438 :              } else {
    8347      286438 :               i16 = i20;
    8348      286438 :               i18 = i19;
    8349      286438 :              }
    8350      286438 :             }
    8351      286438 :             if (i18 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8352      286438 :              _abort();
    8353      286438 :             } else {
    8354      286438 :              HEAP32[i18 >> 2] = 0;
    8355      286438 :              i5 = i16;
    8356      286438 :              break;
    8357      286438 :             }
    8358      286438 :            } else {
    8359      286438 :             i18 = HEAP32[i17 + ((i13 | 8) + i14) >> 2] | 0;
    8360      286438 :             if (i18 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8361      286438 :              _abort();
    8362      286438 :             }
    8363      286438 :             i16 = i18 + 12 | 0;
    8364      286438 :             if ((HEAP32[i16 >> 2] | 0) != (i15 | 0)) {
    8365      286438 :              _abort();
    8366      286438 :             }
    8367      286438 :             i20 = i19 + 8 | 0;
    8368      286438 :             if ((HEAP32[i20 >> 2] | 0) == (i15 | 0)) {
    8369      286438 :              HEAP32[i16 >> 2] = i19;
    8370      286438 :              HEAP32[i20 >> 2] = i18;
    8371      286438 :              i5 = i19;
    8372      286438 :              break;
    8373      286438 :             } else {
    8374      286438 :              _abort();
    8375      286438 :             }
    8376      286438 :            }
    8377      286438 :           } while (0);
    8378      286438 :           if ((i9 | 0) != 0) {
    8379      286438 :            i16 = HEAP32[i17 + (i14 + 28 + i13) >> 2] | 0;
    8380      286438 :            i18 = 13216 + (i16 << 2) | 0;
    8381      286438 :            if ((i15 | 0) == (HEAP32[i18 >> 2] | 0)) {
    8382      286438 :             HEAP32[i18 >> 2] = i5;
    8383      286438 :             if ((i5 | 0) == 0) {
    8384      286438 :              HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i16);
    8385      286438 :              break;
    8386      286438 :             }
    8387      286438 :            } else {
    8388      286438 :             if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8389      286438 :              _abort();
    8390      286438 :             }
    8391      286438 :             i16 = i9 + 16 | 0;
    8392      286438 :             if ((HEAP32[i16 >> 2] | 0) == (i15 | 0)) {
    8393      286438 :              HEAP32[i16 >> 2] = i5;
    8394      286438 :             } else {
    8395      286438 :              HEAP32[i9 + 20 >> 2] = i5;
    8396      286438 :             }
    8397      286438 :             if ((i5 | 0) == 0) {
    8398      286438 :              break;
    8399      286438 :             }
    8400      286438 :            }
    8401      286438 :            if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8402      286438 :             _abort();
    8403      286438 :            }
    8404      286438 :            HEAP32[i5 + 24 >> 2] = i9;
    8405      286438 :            i15 = i13 | 16;
    8406      286438 :            i9 = HEAP32[i17 + (i15 + i14) >> 2] | 0;
    8407      286438 :            do {
    8408      286438 :             if ((i9 | 0) != 0) {
    8409      286438 :              if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8410      286438 :               _abort();
    8411      286438 :              } else {
    8412      286438 :               HEAP32[i5 + 16 >> 2] = i9;
    8413      286438 :               HEAP32[i9 + 24 >> 2] = i5;
    8414      286438 :               break;
    8415      286438 :              }
    8416      286438 :             }
    8417      286438 :            } while (0);
    8418      286438 :            i9 = HEAP32[i17 + (i12 + i15) >> 2] | 0;
    8419      286438 :            if ((i9 | 0) != 0) {
    8420      286438 :             if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8421      286438 :              _abort();
    8422      286438 :             } else {
    8423      286438 :              HEAP32[i5 + 20 >> 2] = i9;
    8424      286438 :              HEAP32[i9 + 24 >> 2] = i5;
    8425      286438 :              break;
    8426      286438 :             }
    8427      286438 :            }
    8428      286438 :           }
    8429      286438 :          } else {
    8430      286438 :           i5 = HEAP32[i17 + ((i13 | 8) + i14) >> 2] | 0;
    8431      286438 :           i12 = HEAP32[i17 + (i14 + 12 + i13) >> 2] | 0;
    8432      286438 :           i18 = 12952 + (i16 << 1 << 2) | 0;
    8433      286438 :           if ((i5 | 0) != (i18 | 0)) {
    8434      286438 :            if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8435      286438 :             _abort();
    8436      286438 :            }
    8437      286438 :            if ((HEAP32[i5 + 12 >> 2] | 0) != (i15 | 0)) {
    8438      286438 :             _abort();
    8439      286438 :            }
    8440      286438 :           }
    8441      286438 :           if ((i12 | 0) == (i5 | 0)) {
    8442      286438 :            HEAP32[3228] = HEAP32[3228] & ~(1 << i16);
    8443      286438 :            break;
    8444      286438 :           }
    8445      286438 :           if ((i12 | 0) != (i18 | 0)) {
    8446      286438 :            if (i12 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8447      286438 :             _abort();
    8448      286438 :            }
    8449      286438 :            i16 = i12 + 8 | 0;
    8450      286438 :            if ((HEAP32[i16 >> 2] | 0) == (i15 | 0)) {
    8451      286438 :             i9 = i16;
    8452      286438 :            } else {
    8453      286438 :             _abort();
    8454      286438 :            }
    8455      286438 :           } else {
    8456      286438 :            i9 = i12 + 8 | 0;
    8457      286438 :           }
    8458      286438 :           HEAP32[i5 + 12 >> 2] = i12;
    8459      286438 :           HEAP32[i9 >> 2] = i5;
    8460      286438 :          }
    8461      286438 :         } while (0);
    8462      286438 :         i15 = i17 + ((i11 | i13) + i14) | 0;
    8463      286438 :         i10 = i11 + i10 | 0;
    8464      286438 :        }
    8465      286438 :        i5 = i15 + 4 | 0;
    8466      286438 :        HEAP32[i5 >> 2] = HEAP32[i5 >> 2] & -2;
    8467      286438 :        HEAP32[i17 + (i8 + 4) >> 2] = i10 | 1;
    8468      286438 :        HEAP32[i17 + (i10 + i8) >> 2] = i10;
    8469      286438 :        i5 = i10 >>> 3;
    8470      286438 :        if (i10 >>> 0 < 256) {
    8471      286438 :         i10 = i5 << 1;
    8472      286438 :         i2 = 12952 + (i10 << 2) | 0;
    8473      286438 :         i9 = HEAP32[3228] | 0;
    8474      286438 :         i5 = 1 << i5;
    8475      286438 :         if ((i9 & i5 | 0) != 0) {
    8476      286438 :          i9 = 12952 + (i10 + 2 << 2) | 0;
    8477      286438 :          i5 = HEAP32[i9 >> 2] | 0;
    8478      286438 :          if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8479      286438 :           _abort();
    8480      286438 :          } else {
    8481      286438 :           i3 = i9;
    8482      286438 :           i4 = i5;
    8483      286438 :          }
    8484      286438 :         } else {
    8485      286438 :          HEAP32[3228] = i9 | i5;
    8486      286438 :          i3 = 12952 + (i10 + 2 << 2) | 0;
    8487      286438 :          i4 = i2;
    8488      286438 :         }
    8489      286438 :         HEAP32[i3 >> 2] = i7;
    8490      286438 :         HEAP32[i4 + 12 >> 2] = i7;
    8491      286438 :         HEAP32[i17 + (i8 + 8) >> 2] = i4;
    8492      286438 :         HEAP32[i17 + (i8 + 12) >> 2] = i2;
    8493      286438 :         break;
    8494      286438 :        }
    8495      286438 :        i3 = i10 >>> 8;
    8496      286438 :        if ((i3 | 0) != 0) {
    8497      286438 :         if (i10 >>> 0 > 16777215) {
    8498      286438 :          i3 = 31;
    8499      286438 :         } else {
    8500      286438 :          i31 = (i3 + 1048320 | 0) >>> 16 & 8;
    8501      286438 :          i32 = i3 << i31;
    8502      286438 :          i30 = (i32 + 520192 | 0) >>> 16 & 4;
    8503      286438 :          i32 = i32 << i30;
    8504      286438 :          i3 = (i32 + 245760 | 0) >>> 16 & 2;
    8505      286438 :          i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0;
    8506      286438 :          i3 = i10 >>> (i3 + 7 | 0) & 1 | i3 << 1;
    8507      286438 :         }
    8508      286438 :        } else {
    8509      286438 :         i3 = 0;
    8510      286438 :        }
    8511      286438 :        i4 = 13216 + (i3 << 2) | 0;
    8512      286438 :        HEAP32[i17 + (i8 + 28) >> 2] = i3;
    8513      286438 :        HEAP32[i17 + (i8 + 20) >> 2] = 0;
    8514      286438 :        HEAP32[i17 + (i8 + 16) >> 2] = 0;
    8515      286438 :        i9 = HEAP32[12916 >> 2] | 0;
    8516      286438 :        i5 = 1 << i3;
    8517      286438 :        if ((i9 & i5 | 0) == 0) {
    8518      286438 :         HEAP32[12916 >> 2] = i9 | i5;
    8519      286438 :         HEAP32[i4 >> 2] = i7;
    8520      286438 :         HEAP32[i17 + (i8 + 24) >> 2] = i4;
    8521      286438 :         HEAP32[i17 + (i8 + 12) >> 2] = i7;
    8522      286438 :         HEAP32[i17 + (i8 + 8) >> 2] = i7;
    8523      286438 :         break;
    8524      286438 :        }
    8525      286438 :        i4 = HEAP32[i4 >> 2] | 0;
    8526      286438 :        if ((i3 | 0) == 31) {
    8527      286438 :         i3 = 0;
    8528      286438 :        } else {
    8529      286438 :         i3 = 25 - (i3 >>> 1) | 0;
    8530      286438 :        }
    8531      286438 :        L445 : do {
    8532      286438 :         if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i10 | 0)) {
    8533      286438 :          i3 = i10 << i3;
    8534      286438 :          while (1) {
    8535      286438 :           i5 = i4 + (i3 >>> 31 << 2) + 16 | 0;
    8536      286438 :           i9 = HEAP32[i5 >> 2] | 0;
    8537      286438 :           if ((i9 | 0) == 0) {
    8538      286438 :            break;
    8539      286438 :           }
    8540      286438 :           if ((HEAP32[i9 + 4 >> 2] & -8 | 0) == (i10 | 0)) {
    8541      286438 :            i2 = i9;
    8542      286438 :            break L445;
    8543      286438 :           } else {
    8544      286438 :            i3 = i3 << 1;
    8545      286438 :            i4 = i9;
    8546      286438 :           }
    8547      286438 :          }
    8548      286438 :          if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8549      286438 :           _abort();
    8550      286438 :          } else {
    8551      286438 :           HEAP32[i5 >> 2] = i7;
    8552      286438 :           HEAP32[i17 + (i8 + 24) >> 2] = i4;
    8553      286438 :           HEAP32[i17 + (i8 + 12) >> 2] = i7;
    8554      286438 :           HEAP32[i17 + (i8 + 8) >> 2] = i7;
    8555      286438 :           break L348;
    8556      286438 :          }
    8557      286438 :         } else {
    8558      286438 :          i2 = i4;
    8559      286438 :         }
    8560      286438 :        } while (0);
    8561      286438 :        i4 = i2 + 8 | 0;
    8562      286438 :        i3 = HEAP32[i4 >> 2] | 0;
    8563      286438 :        i5 = HEAP32[12928 >> 2] | 0;
    8564      286438 :        if (i2 >>> 0 < i5 >>> 0) {
    8565      286438 :         _abort();
    8566      286438 :        }
    8567      286438 :        if (i3 >>> 0 < i5 >>> 0) {
    8568      286438 :         _abort();
    8569      286438 :        } else {
    8570      286438 :         HEAP32[i3 + 12 >> 2] = i7;
    8571      286438 :         HEAP32[i4 >> 2] = i7;
    8572      286438 :         HEAP32[i17 + (i8 + 8) >> 2] = i3;
    8573      286438 :         HEAP32[i17 + (i8 + 12) >> 2] = i2;
    8574      286438 :         HEAP32[i17 + (i8 + 24) >> 2] = 0;
    8575      286438 :         break;
    8576      286438 :        }
    8577      286438 :       } else {
    8578      286438 :        i32 = (HEAP32[12924 >> 2] | 0) + i10 | 0;
    8579      286438 :        HEAP32[12924 >> 2] = i32;
    8580      286438 :        HEAP32[12936 >> 2] = i7;
    8581      286438 :        HEAP32[i17 + (i8 + 4) >> 2] = i32 | 1;
    8582      286438 :       }
    8583      286438 :      } while (0);
    8584      286438 :      i32 = i17 + (i6 | 8) | 0;
    8585      286438 :      STACKTOP = i1;
    8586      286438 :      return i32 | 0;
    8587      286438 :     }
    8588      286438 :     i3 = 13360 | 0;
    8589      286438 :     while (1) {
    8590      286438 :      i2 = HEAP32[i3 >> 2] | 0;
    8591      286438 :      if (!(i2 >>> 0 > i15 >>> 0) ? (i11 = HEAP32[i3 + 4 >> 2] | 0, i10 = i2 + i11 | 0, i10 >>> 0 > i15 >>> 0) : 0) {
    8592      286438 :       break;
    8593      286438 :      }
    8594      286438 :      i3 = HEAP32[i3 + 8 >> 2] | 0;
    8595      286438 :     }
    8596      286438 :     i3 = i2 + (i11 + -39) | 0;
    8597      286438 :     if ((i3 & 7 | 0) == 0) {
    8598      286438 :      i3 = 0;
    8599      286438 :     } else {
    8600      286438 :      i3 = 0 - i3 & 7;
    8601      286438 :     }
    8602      286438 :     i2 = i2 + (i11 + -47 + i3) | 0;
    8603      286438 :     i2 = i2 >>> 0 < (i15 + 16 | 0) >>> 0 ? i15 : i2;
    8604      286438 :     i3 = i2 + 8 | 0;
    8605      286438 :     i4 = i17 + 8 | 0;
    8606      286438 :     if ((i4 & 7 | 0) == 0) {
    8607      286438 :      i4 = 0;
    8608      286438 :     } else {
    8609      286438 :      i4 = 0 - i4 & 7;
    8610      286438 :     }
    8611      286438 :     i32 = i14 + -40 - i4 | 0;
    8612      286438 :     HEAP32[12936 >> 2] = i17 + i4;
    8613      286438 :     HEAP32[12924 >> 2] = i32;
    8614      286438 :     HEAP32[i17 + (i4 + 4) >> 2] = i32 | 1;
    8615      286438 :     HEAP32[i17 + (i14 + -36) >> 2] = 40;
    8616      286438 :     HEAP32[12940 >> 2] = HEAP32[13400 >> 2];
    8617      286438 :     HEAP32[i2 + 4 >> 2] = 27;
    8618      286438 :     HEAP32[i3 + 0 >> 2] = HEAP32[13360 >> 2];
    8619      286438 :     HEAP32[i3 + 4 >> 2] = HEAP32[13364 >> 2];
    8620      286438 :     HEAP32[i3 + 8 >> 2] = HEAP32[13368 >> 2];
    8621      286438 :     HEAP32[i3 + 12 >> 2] = HEAP32[13372 >> 2];
    8622      286438 :     HEAP32[13360 >> 2] = i17;
    8623      286438 :     HEAP32[13364 >> 2] = i14;
    8624      286438 :     HEAP32[13372 >> 2] = 0;
    8625      286438 :     HEAP32[13368 >> 2] = i3;
    8626      286438 :     i4 = i2 + 28 | 0;
    8627      286438 :     HEAP32[i4 >> 2] = 7;
    8628      286438 :     if ((i2 + 32 | 0) >>> 0 < i10 >>> 0) {
    8629      286438 :      while (1) {
    8630      286438 :       i3 = i4 + 4 | 0;
    8631      286438 :       HEAP32[i3 >> 2] = 7;
    8632      286438 :       if ((i4 + 8 | 0) >>> 0 < i10 >>> 0) {
    8633      286438 :        i4 = i3;
    8634      286438 :       } else {
    8635      286438 :        break;
    8636      286438 :       }
    8637      286438 :      }
    8638      286438 :     }
    8639      286438 :     if ((i2 | 0) != (i15 | 0)) {
    8640      286438 :      i2 = i2 - i15 | 0;
    8641      286438 :      i3 = i15 + (i2 + 4) | 0;
    8642      286438 :      HEAP32[i3 >> 2] = HEAP32[i3 >> 2] & -2;
    8643      286438 :      HEAP32[i15 + 4 >> 2] = i2 | 1;
    8644      286438 :      HEAP32[i15 + i2 >> 2] = i2;
    8645      286438 :      i3 = i2 >>> 3;
    8646      286438 :      if (i2 >>> 0 < 256) {
    8647      286438 :       i4 = i3 << 1;
    8648      286438 :       i2 = 12952 + (i4 << 2) | 0;
    8649      286438 :       i5 = HEAP32[3228] | 0;
    8650      286438 :       i3 = 1 << i3;
    8651      286438 :       if ((i5 & i3 | 0) != 0) {
    8652      286438 :        i4 = 12952 + (i4 + 2 << 2) | 0;
    8653      286438 :        i3 = HEAP32[i4 >> 2] | 0;
    8654      286438 :        if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8655      286438 :         _abort();
    8656      286438 :        } else {
    8657      286438 :         i7 = i4;
    8658      286438 :         i8 = i3;
    8659      286438 :        }
    8660      286438 :       } else {
    8661      286438 :        HEAP32[3228] = i5 | i3;
    8662      286438 :        i7 = 12952 + (i4 + 2 << 2) | 0;
    8663      286438 :        i8 = i2;
    8664      286438 :       }
    8665      286438 :       HEAP32[i7 >> 2] = i15;
    8666      286438 :       HEAP32[i8 + 12 >> 2] = i15;
    8667      286438 :       HEAP32[i15 + 8 >> 2] = i8;
    8668      286438 :       HEAP32[i15 + 12 >> 2] = i2;
    8669      286438 :       break;
    8670      286438 :      }
    8671      286438 :      i3 = i2 >>> 8;
    8672      286438 :      if ((i3 | 0) != 0) {
    8673      286438 :       if (i2 >>> 0 > 16777215) {
    8674      286438 :        i3 = 31;
    8675      286438 :       } else {
    8676      286438 :        i31 = (i3 + 1048320 | 0) >>> 16 & 8;
    8677      286438 :        i32 = i3 << i31;
    8678      286438 :        i30 = (i32 + 520192 | 0) >>> 16 & 4;
    8679      286438 :        i32 = i32 << i30;
    8680      286438 :        i3 = (i32 + 245760 | 0) >>> 16 & 2;
    8681      286438 :        i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0;
    8682      286438 :        i3 = i2 >>> (i3 + 7 | 0) & 1 | i3 << 1;
    8683      286438 :       }
    8684      286438 :      } else {
    8685      286438 :       i3 = 0;
    8686      286438 :      }
    8687      286438 :      i7 = 13216 + (i3 << 2) | 0;
    8688      286438 :      HEAP32[i15 + 28 >> 2] = i3;
    8689      286438 :      HEAP32[i15 + 20 >> 2] = 0;
    8690      286438 :      HEAP32[i15 + 16 >> 2] = 0;
    8691      286438 :      i4 = HEAP32[12916 >> 2] | 0;
    8692      286438 :      i5 = 1 << i3;
    8693      286438 :      if ((i4 & i5 | 0) == 0) {
    8694      286438 :       HEAP32[12916 >> 2] = i4 | i5;
    8695      286438 :       HEAP32[i7 >> 2] = i15;
    8696      286438 :       HEAP32[i15 + 24 >> 2] = i7;
    8697      286438 :       HEAP32[i15 + 12 >> 2] = i15;
    8698      286438 :       HEAP32[i15 + 8 >> 2] = i15;
    8699      286438 :       break;
    8700      286438 :      }
    8701      286438 :      i4 = HEAP32[i7 >> 2] | 0;
    8702      286438 :      if ((i3 | 0) == 31) {
    8703      286438 :       i3 = 0;
    8704      286438 :      } else {
    8705      286438 :       i3 = 25 - (i3 >>> 1) | 0;
    8706      286438 :      }
    8707      286438 :      L499 : do {
    8708      286438 :       if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i2 | 0)) {
    8709      286438 :        i3 = i2 << i3;
    8710      286438 :        while (1) {
    8711      286438 :         i7 = i4 + (i3 >>> 31 << 2) + 16 | 0;
    8712      286438 :         i5 = HEAP32[i7 >> 2] | 0;
    8713      286438 :         if ((i5 | 0) == 0) {
    8714      286438 :          break;
    8715      286438 :         }
    8716      286438 :         if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i2 | 0)) {
    8717      286438 :          i6 = i5;
    8718      286438 :          break L499;
    8719      286438 :         } else {
    8720      286438 :          i3 = i3 << 1;
    8721      286438 :          i4 = i5;
    8722      286438 :         }
    8723      286438 :        }
    8724      286438 :        if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
    8725      286438 :         _abort();
    8726      286438 :        } else {
    8727      286438 :         HEAP32[i7 >> 2] = i15;
    8728      286438 :         HEAP32[i15 + 24 >> 2] = i4;
    8729      286438 :         HEAP32[i15 + 12 >> 2] = i15;
    8730      286438 :         HEAP32[i15 + 8 >> 2] = i15;
    8731      286438 :         break L311;
    8732      286438 :        }
    8733      286438 :       } else {
    8734      286438 :        i6 = i4;
    8735      286438 :       }
    8736      286438 :      } while (0);
    8737      286438 :      i4 = i6 + 8 | 0;
    8738      286438 :      i3 = HEAP32[i4 >> 2] | 0;
    8739      286438 :      i2 = HEAP32[12928 >> 2] | 0;
    8740      286438 :      if (i6 >>> 0 < i2 >>> 0) {
    8741      286438 :       _abort();
    8742      286438 :      }
    8743      286438 :      if (i3 >>> 0 < i2 >>> 0) {
    8744      286438 :       _abort();
    8745      286438 :      } else {
    8746      286438 :       HEAP32[i3 + 12 >> 2] = i15;
    8747      286438 :       HEAP32[i4 >> 2] = i15;
    8748      286438 :       HEAP32[i15 + 8 >> 2] = i3;
    8749      286438 :       HEAP32[i15 + 12 >> 2] = i6;
    8750      286438 :       HEAP32[i15 + 24 >> 2] = 0;
    8751      286438 :       break;
    8752      286438 :      }
    8753      286438 :     }
    8754      286438 :    } else {
    8755      286438 :     i32 = HEAP32[12928 >> 2] | 0;
    8756      286438 :     if ((i32 | 0) == 0 | i17 >>> 0 < i32 >>> 0) {
    8757      286438 :      HEAP32[12928 >> 2] = i17;
    8758      286438 :     }
    8759      286438 :     HEAP32[13360 >> 2] = i17;
    8760      286438 :     HEAP32[13364 >> 2] = i14;
    8761      286438 :     HEAP32[13372 >> 2] = 0;
    8762      286438 :     HEAP32[12948 >> 2] = HEAP32[3346];
    8763      286438 :     HEAP32[12944 >> 2] = -1;
    8764      286438 :     i2 = 0;
    8765      286438 :     do {
    8766      286438 :      i32 = i2 << 1;
    8767      286438 :      i31 = 12952 + (i32 << 2) | 0;
    8768      286438 :      HEAP32[12952 + (i32 + 3 << 2) >> 2] = i31;
    8769      286438 :      HEAP32[12952 + (i32 + 2 << 2) >> 2] = i31;
    8770      286438 :      i2 = i2 + 1 | 0;
    8771      286438 :     } while ((i2 | 0) != 32);
    8772      286438 :     i2 = i17 + 8 | 0;
    8773      286438 :     if ((i2 & 7 | 0) == 0) {
    8774      286438 :      i2 = 0;
    8775      286438 :     } else {
    8776      286438 :      i2 = 0 - i2 & 7;
    8777      286438 :     }
    8778      286438 :     i32 = i14 + -40 - i2 | 0;
    8779      286438 :     HEAP32[12936 >> 2] = i17 + i2;
    8780      286438 :     HEAP32[12924 >> 2] = i32;
    8781      286438 :     HEAP32[i17 + (i2 + 4) >> 2] = i32 | 1;
    8782      286438 :     HEAP32[i17 + (i14 + -36) >> 2] = 40;
    8783      286438 :     HEAP32[12940 >> 2] = HEAP32[13400 >> 2];
    8784      286438 :    }
    8785      286438 :   } while (0);
    8786      286438 :   i2 = HEAP32[12924 >> 2] | 0;
    8787      286438 :   if (i2 >>> 0 > i12 >>> 0) {
    8788      286438 :    i31 = i2 - i12 | 0;
    8789      286438 :    HEAP32[12924 >> 2] = i31;
    8790      286438 :    i32 = HEAP32[12936 >> 2] | 0;
    8791      286438 :    HEAP32[12936 >> 2] = i32 + i12;
    8792      286438 :    HEAP32[i32 + (i12 + 4) >> 2] = i31 | 1;
    8793      286438 :    HEAP32[i32 + 4 >> 2] = i12 | 3;
    8794      286438 :    i32 = i32 + 8 | 0;
    8795      286438 :    STACKTOP = i1;
    8796      286438 :    return i32 | 0;
    8797      286438 :   }
    8798      286438 :  }
    8799      286438 :  HEAP32[(___errno_location() | 0) >> 2] = 12;
    8800      286438 :  i32 = 0;
    8801      286438 :  STACKTOP = i1;
    8802      286438 :  return i32 | 0;
    8803      286438 : }
    8804         322 : function _llex(i2, i3) {
    8805         322 :  i2 = i2 | 0;
    8806         322 :  i3 = i3 | 0;
    8807         322 :  var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0;
    8808         322 :  i1 = STACKTOP;
    8809         322 :  STACKTOP = STACKTOP + 16 | 0;
    8810         322 :  i12 = i1;
    8811         322 :  i4 = i2 + 60 | 0;
    8812         322 :  HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
    8813         322 :  i5 = i2 + 56 | 0;
    8814         322 :  L1 : while (1) {
    8815         322 :   i13 = HEAP32[i2 >> 2] | 0;
    8816         322 :   L3 : while (1) {
    8817         322 :    switch (i13 | 0) {
    8818         322 :    case 11:
    8819         322 :    case 9:
    8820         322 :    case 12:
    8821         322 :    case 32:
    8822         322 :     {
    8823         322 :      break;
    8824         322 :     }
    8825         322 :    case 91:
    8826         322 :     {
    8827         322 :      i9 = 25;
    8828         322 :      break L1;
    8829         322 :     }
    8830         322 :    case 62:
    8831         322 :     {
    8832         322 :      i9 = 45;
    8833         322 :      break L1;
    8834         322 :     }
    8835         322 :    case 46:
    8836         322 :     {
    8837         322 :      i9 = 161;
    8838         322 :      break L1;
    8839         322 :     }
    8840         322 :    case 13:
    8841         322 :    case 10:
    8842         322 :     {
    8843         322 :      i9 = 4;
    8844         322 :      break L3;
    8845         322 :     }
    8846         322 :    case 45:
    8847         322 :     {
    8848         322 :      break L3;
    8849         322 :     }
    8850         322 :    case 61:
    8851         322 :     {
    8852         322 :      i9 = 29;
    8853         322 :      break L1;
    8854         322 :     }
    8855         322 :    case 39:
    8856         322 :    case 34:
    8857         322 :     {
    8858         322 :      i9 = 69;
    8859         322 :      break L1;
    8860         322 :     }
    8861         322 :    case 126:
    8862         322 :     {
    8863         322 :      i9 = 53;
    8864         322 :      break L1;
    8865         322 :     }
    8866         322 :    case 60:
    8867         322 :     {
    8868         322 :      i9 = 37;
    8869         322 :      break L1;
    8870         322 :     }
    8871         322 :    case 58:
    8872         322 :     {
    8873         322 :      i9 = 61;
    8874         322 :      break L1;
    8875         322 :     }
    8876         322 :    case 57:
    8877         322 :    case 56:
    8878         322 :    case 55:
    8879         322 :    case 54:
    8880         322 :    case 53:
    8881         322 :    case 52:
    8882         322 :    case 51:
    8883         322 :    case 50:
    8884         322 :    case 49:
    8885         322 :    case 48:
    8886         322 :     {
    8887         322 :      i20 = i13;
    8888         322 :      break L1;
    8889         322 :     }
    8890         322 :    case -1:
    8891         322 :     {
    8892         322 :      i2 = 286;
    8893         322 :      i9 = 306;
    8894         322 :      break L1;
    8895         322 :     }
    8896         322 :    default:
    8897         322 :     {
    8898         322 :      i9 = 283;
    8899         322 :      break L1;
    8900         322 :     }
    8901         322 :    }
    8902         322 :    i13 = HEAP32[i5 >> 2] | 0;
    8903         322 :    i27 = HEAP32[i13 >> 2] | 0;
    8904         322 :    HEAP32[i13 >> 2] = i27 + -1;
    8905         322 :    if ((i27 | 0) == 0) {
    8906         322 :     i13 = _luaZ_fill(i13) | 0;
    8907         322 :    } else {
    8908         322 :     i27 = i13 + 4 | 0;
    8909         322 :     i13 = HEAP32[i27 >> 2] | 0;
    8910         322 :     HEAP32[i27 >> 2] = i13 + 1;
    8911         322 :     i13 = HEAPU8[i13] | 0;
    8912         322 :    }
    8913         322 :    HEAP32[i2 >> 2] = i13;
    8914         322 :   }
    8915         322 :   if ((i9 | 0) == 4) {
    8916         322 :    i9 = 0;
    8917         322 :    _inclinenumber(i2);
    8918         322 :    continue;
    8919         322 :   }
    8920         322 :   i13 = HEAP32[i5 >> 2] | 0;
    8921         322 :   i27 = HEAP32[i13 >> 2] | 0;
    8922         322 :   HEAP32[i13 >> 2] = i27 + -1;
    8923         322 :   if ((i27 | 0) == 0) {
    8924         322 :    i13 = _luaZ_fill(i13) | 0;
    8925         322 :   } else {
    8926         322 :    i27 = i13 + 4 | 0;
    8927         322 :    i13 = HEAP32[i27 >> 2] | 0;
    8928         322 :    HEAP32[i27 >> 2] = i13 + 1;
    8929         322 :    i13 = HEAPU8[i13] | 0;
    8930         322 :   }
    8931         322 :   HEAP32[i2 >> 2] = i13;
    8932         322 :   if ((i13 | 0) != 45) {
    8933         322 :    i2 = 45;
    8934         322 :    i9 = 306;
    8935         322 :    break;
    8936         322 :   }
    8937         322 :   i13 = HEAP32[i5 >> 2] | 0;
    8938         322 :   i27 = HEAP32[i13 >> 2] | 0;
    8939         322 :   HEAP32[i13 >> 2] = i27 + -1;
    8940         322 :   if ((i27 | 0) == 0) {
    8941         322 :    i13 = _luaZ_fill(i13) | 0;
    8942         322 :   } else {
    8943         322 :    i27 = i13 + 4 | 0;
    8944         322 :    i13 = HEAP32[i27 >> 2] | 0;
    8945         322 :    HEAP32[i27 >> 2] = i13 + 1;
    8946         322 :    i13 = HEAPU8[i13] | 0;
    8947         322 :   }
    8948         322 :   HEAP32[i2 >> 2] = i13;
    8949         322 :   do {
    8950         322 :    if ((i13 | 0) == 91) {
    8951         322 :     i13 = _skip_sep(i2) | 0;
    8952         322 :     HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
    8953         322 :     if ((i13 | 0) > -1) {
    8954         322 :      _read_long_string(i2, 0, i13);
    8955         322 :      HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
    8956         322 :      continue L1;
    8957         322 :     } else {
    8958         322 :      i13 = HEAP32[i2 >> 2] | 0;
    8959         322 :      break;
    8960         322 :     }
    8961         322 :    }
    8962         322 :   } while (0);
    8963         322 :   while (1) {
    8964         322 :    if ((i13 | 0) == -1 | (i13 | 0) == 13 | (i13 | 0) == 10) {
    8965         322 :     continue L1;
    8966         322 :    }
    8967         322 :    i13 = HEAP32[i5 >> 2] | 0;
    8968         322 :    i27 = HEAP32[i13 >> 2] | 0;
    8969         322 :    HEAP32[i13 >> 2] = i27 + -1;
    8970         322 :    if ((i27 | 0) == 0) {
    8971         322 :     i13 = _luaZ_fill(i13) | 0;
    8972         322 :    } else {
    8973         322 :     i27 = i13 + 4 | 0;
    8974         322 :     i13 = HEAP32[i27 >> 2] | 0;
    8975         322 :     HEAP32[i27 >> 2] = i13 + 1;
    8976         322 :     i13 = HEAPU8[i13] | 0;
    8977         322 :    }
    8978         322 :    HEAP32[i2 >> 2] = i13;
    8979         322 :   }
    8980         322 :  }
    8981         322 :  if ((i9 | 0) == 25) {
    8982         322 :   i9 = _skip_sep(i2) | 0;
    8983         322 :   if ((i9 | 0) > -1) {
    8984         322 :    _read_long_string(i2, i3, i9);
    8985         322 :    i27 = 289;
    8986         322 :    STACKTOP = i1;
    8987         322 :    return i27 | 0;
    8988         322 :   }
    8989         322 :   if ((i9 | 0) == -1) {
    8990         322 :    i27 = 91;
    8991         322 :    STACKTOP = i1;
    8992         322 :    return i27 | 0;
    8993         322 :   } else {
    8994         322 :    _lexerror(i2, 12272, 289);
    8995         322 :   }
    8996         322 :  } else if ((i9 | 0) == 29) {
    8997         322 :   i3 = HEAP32[i5 >> 2] | 0;
    8998         322 :   i27 = HEAP32[i3 >> 2] | 0;
    8999         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9000         322 :   if ((i27 | 0) == 0) {
    9001         322 :    i3 = _luaZ_fill(i3) | 0;
    9002         322 :   } else {
    9003         322 :    i27 = i3 + 4 | 0;
    9004         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9005         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9006         322 :    i3 = HEAPU8[i3] | 0;
    9007         322 :   }
    9008         322 :   HEAP32[i2 >> 2] = i3;
    9009         322 :   if ((i3 | 0) != 61) {
    9010         322 :    i27 = 61;
    9011         322 :    STACKTOP = i1;
    9012         322 :    return i27 | 0;
    9013         322 :   }
    9014         322 :   i3 = HEAP32[i5 >> 2] | 0;
    9015         322 :   i27 = HEAP32[i3 >> 2] | 0;
    9016         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9017         322 :   if ((i27 | 0) == 0) {
    9018         322 :    i3 = _luaZ_fill(i3) | 0;
    9019         322 :   } else {
    9020         322 :    i27 = i3 + 4 | 0;
    9021         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9022         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9023         322 :    i3 = HEAPU8[i3] | 0;
    9024         322 :   }
    9025         322 :   HEAP32[i2 >> 2] = i3;
    9026         322 :   i27 = 281;
    9027         322 :   STACKTOP = i1;
    9028         322 :   return i27 | 0;
    9029         322 :  } else if ((i9 | 0) == 37) {
    9030         322 :   i3 = HEAP32[i5 >> 2] | 0;
    9031         322 :   i27 = HEAP32[i3 >> 2] | 0;
    9032         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9033         322 :   if ((i27 | 0) == 0) {
    9034         322 :    i3 = _luaZ_fill(i3) | 0;
    9035         322 :   } else {
    9036         322 :    i27 = i3 + 4 | 0;
    9037         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9038         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9039         322 :    i3 = HEAPU8[i3] | 0;
    9040         322 :   }
    9041         322 :   HEAP32[i2 >> 2] = i3;
    9042         322 :   if ((i3 | 0) != 61) {
    9043         322 :    i27 = 60;
    9044         322 :    STACKTOP = i1;
    9045         322 :    return i27 | 0;
    9046         322 :   }
    9047         322 :   i3 = HEAP32[i5 >> 2] | 0;
    9048         322 :   i27 = HEAP32[i3 >> 2] | 0;
    9049         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9050         322 :   if ((i27 | 0) == 0) {
    9051         322 :    i3 = _luaZ_fill(i3) | 0;
    9052         322 :   } else {
    9053         322 :    i27 = i3 + 4 | 0;
    9054         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9055         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9056         322 :    i3 = HEAPU8[i3] | 0;
    9057         322 :   }
    9058         322 :   HEAP32[i2 >> 2] = i3;
    9059         322 :   i27 = 283;
    9060         322 :   STACKTOP = i1;
    9061         322 :   return i27 | 0;
    9062         322 :  } else if ((i9 | 0) == 45) {
    9063         322 :   i3 = HEAP32[i5 >> 2] | 0;
    9064         322 :   i27 = HEAP32[i3 >> 2] | 0;
    9065         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9066         322 :   if ((i27 | 0) == 0) {
    9067         322 :    i3 = _luaZ_fill(i3) | 0;
    9068         322 :   } else {
    9069         322 :    i27 = i3 + 4 | 0;
    9070         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9071         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9072         322 :    i3 = HEAPU8[i3] | 0;
    9073         322 :   }
    9074         322 :   HEAP32[i2 >> 2] = i3;
    9075         322 :   if ((i3 | 0) != 61) {
    9076         322 :    i27 = 62;
    9077         322 :    STACKTOP = i1;
    9078         322 :    return i27 | 0;
    9079         322 :   }
    9080         322 :   i3 = HEAP32[i5 >> 2] | 0;
    9081         322 :   i27 = HEAP32[i3 >> 2] | 0;
    9082         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9083         322 :   if ((i27 | 0) == 0) {
    9084         322 :    i3 = _luaZ_fill(i3) | 0;
    9085         322 :   } else {
    9086         322 :    i27 = i3 + 4 | 0;
    9087         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9088         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9089         322 :    i3 = HEAPU8[i3] | 0;
    9090         322 :   }
    9091         322 :   HEAP32[i2 >> 2] = i3;
    9092         322 :   i27 = 282;
    9093         322 :   STACKTOP = i1;
    9094         322 :   return i27 | 0;
    9095         322 :  } else if ((i9 | 0) == 53) {
    9096         322 :   i3 = HEAP32[i5 >> 2] | 0;
    9097         322 :   i27 = HEAP32[i3 >> 2] | 0;
    9098         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9099         322 :   if ((i27 | 0) == 0) {
    9100         322 :    i3 = _luaZ_fill(i3) | 0;
    9101         322 :   } else {
    9102         322 :    i27 = i3 + 4 | 0;
    9103         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9104         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9105         322 :    i3 = HEAPU8[i3] | 0;
    9106         322 :   }
    9107         322 :   HEAP32[i2 >> 2] = i3;
    9108         322 :   if ((i3 | 0) != 61) {
    9109         322 :    i27 = 126;
    9110         322 :    STACKTOP = i1;
    9111         322 :    return i27 | 0;
    9112         322 :   }
    9113         322 :   i3 = HEAP32[i5 >> 2] | 0;
    9114         322 :   i27 = HEAP32[i3 >> 2] | 0;
    9115         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9116         322 :   if ((i27 | 0) == 0) {
    9117         322 :    i3 = _luaZ_fill(i3) | 0;
    9118         322 :   } else {
    9119         322 :    i27 = i3 + 4 | 0;
    9120         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9121         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9122         322 :    i3 = HEAPU8[i3] | 0;
    9123         322 :   }
    9124         322 :   HEAP32[i2 >> 2] = i3;
    9125         322 :   i27 = 284;
    9126         322 :   STACKTOP = i1;
    9127         322 :   return i27 | 0;
    9128         322 :  } else if ((i9 | 0) == 61) {
    9129         322 :   i3 = HEAP32[i5 >> 2] | 0;
    9130         322 :   i27 = HEAP32[i3 >> 2] | 0;
    9131         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9132         322 :   if ((i27 | 0) == 0) {
    9133         322 :    i3 = _luaZ_fill(i3) | 0;
    9134         322 :   } else {
    9135         322 :    i27 = i3 + 4 | 0;
    9136         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9137         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9138         322 :    i3 = HEAPU8[i3] | 0;
    9139         322 :   }
    9140         322 :   HEAP32[i2 >> 2] = i3;
    9141         322 :   if ((i3 | 0) != 58) {
    9142         322 :    i27 = 58;
    9143         322 :    STACKTOP = i1;
    9144         322 :    return i27 | 0;
    9145         322 :   }
    9146         322 :   i3 = HEAP32[i5 >> 2] | 0;
    9147         322 :   i27 = HEAP32[i3 >> 2] | 0;
    9148         322 :   HEAP32[i3 >> 2] = i27 + -1;
    9149         322 :   if ((i27 | 0) == 0) {
    9150         322 :    i3 = _luaZ_fill(i3) | 0;
    9151         322 :   } else {
    9152         322 :    i27 = i3 + 4 | 0;
    9153         322 :    i3 = HEAP32[i27 >> 2] | 0;
    9154         322 :    HEAP32[i27 >> 2] = i3 + 1;
    9155         322 :    i3 = HEAPU8[i3] | 0;
    9156         322 :   }
    9157         322 :   HEAP32[i2 >> 2] = i3;
    9158         322 :   i27 = 285;
    9159         322 :   STACKTOP = i1;
    9160         322 :   return i27 | 0;
    9161         322 :  } else if ((i9 | 0) == 69) {
    9162         322 :   i14 = HEAP32[i4 >> 2] | 0;
    9163         322 :   i7 = i14 + 4 | 0;
    9164         322 :   i15 = HEAP32[i7 >> 2] | 0;
    9165         322 :   i8 = i14 + 8 | 0;
    9166         322 :   i6 = HEAP32[i8 >> 2] | 0;
    9167         322 :   do {
    9168         322 :    if ((i15 + 1 | 0) >>> 0 > i6 >>> 0) {
    9169         322 :     if (i6 >>> 0 > 2147483645) {
    9170         322 :      _lexerror(i2, 12368, 0);
    9171         322 :     }
    9172         322 :     i16 = i6 << 1;
    9173         322 :     i15 = HEAP32[i2 + 52 >> 2] | 0;
    9174         322 :     if ((i16 | 0) == -2) {
    9175         322 :      _luaM_toobig(i15);
    9176         322 :     } else {
    9177         322 :      i24 = _luaM_realloc_(i15, HEAP32[i14 >> 2] | 0, i6, i16) | 0;
    9178         322 :      HEAP32[i14 >> 2] = i24;
    9179         322 :      HEAP32[i8 >> 2] = i16;
    9180         322 :      i23 = HEAP32[i7 >> 2] | 0;
    9181         322 :      break;
    9182         322 :     }
    9183         322 :    } else {
    9184         322 :     i23 = i15;
    9185         322 :     i24 = HEAP32[i14 >> 2] | 0;
    9186         322 :    }
    9187         322 :   } while (0);
    9188         322 :   i6 = i13 & 255;
    9189         322 :   HEAP32[i7 >> 2] = i23 + 1;
    9190         322 :   HEAP8[i24 + i23 | 0] = i6;
    9191         322 :   i7 = HEAP32[i5 >> 2] | 0;
    9192         322 :   i27 = HEAP32[i7 >> 2] | 0;
    9193         322 :   HEAP32[i7 >> 2] = i27 + -1;
    9194         322 :   if ((i27 | 0) == 0) {
    9195         322 :    i14 = _luaZ_fill(i7) | 0;
    9196         322 :   } else {
    9197         322 :    i27 = i7 + 4 | 0;
    9198         322 :    i14 = HEAP32[i27 >> 2] | 0;
    9199         322 :    HEAP32[i27 >> 2] = i14 + 1;
    9200         322 :    i14 = HEAPU8[i14] | 0;
    9201         322 :   }
    9202         322 :   HEAP32[i2 >> 2] = i14;
    9203         322 :   L139 : do {
    9204         322 :    if ((i14 | 0) != (i13 | 0)) {
    9205         322 :     i7 = i2 + 52 | 0;
    9206         322 :     L141 : while (1) {
    9207         322 :      L143 : do {
    9208         322 :       if ((i14 | 0) == 92) {
    9209         322 :        i8 = HEAP32[i5 >> 2] | 0;
    9210         322 :        i27 = HEAP32[i8 >> 2] | 0;
    9211         322 :        HEAP32[i8 >> 2] = i27 + -1;
    9212         322 :        if ((i27 | 0) == 0) {
    9213         322 :         i8 = _luaZ_fill(i8) | 0;
    9214         322 :        } else {
    9215         322 :         i27 = i8 + 4 | 0;
    9216         322 :         i8 = HEAP32[i27 >> 2] | 0;
    9217         322 :         HEAP32[i27 >> 2] = i8 + 1;
    9218         322 :         i8 = HEAPU8[i8] | 0;
    9219         322 :        }
    9220         322 :        HEAP32[i2 >> 2] = i8;
    9221         322 :        switch (i8 | 0) {
    9222         322 :        case 13:
    9223         322 :        case 10:
    9224         322 :         {
    9225         322 :          _inclinenumber(i2);
    9226         322 :          i8 = 10;
    9227         322 :          break;
    9228         322 :         }
    9229         322 :        case 39:
    9230         322 :        case 34:
    9231         322 :        case 92:
    9232         322 :         {
    9233         322 :          i9 = 124;
    9234         322 :          break;
    9235         322 :         }
    9236         322 :        case 122:
    9237         322 :         {
    9238         322 :          i8 = HEAP32[i5 >> 2] | 0;
    9239         322 :          i27 = HEAP32[i8 >> 2] | 0;
    9240         322 :          HEAP32[i8 >> 2] = i27 + -1;
    9241         322 :          if ((i27 | 0) == 0) {
    9242         322 :           i14 = _luaZ_fill(i8) | 0;
    9243         322 :          } else {
    9244         322 :           i27 = i8 + 4 | 0;
    9245         322 :           i14 = HEAP32[i27 >> 2] | 0;
    9246         322 :           HEAP32[i27 >> 2] = i14 + 1;
    9247         322 :           i14 = HEAPU8[i14] | 0;
    9248         322 :          }
    9249         322 :          HEAP32[i2 >> 2] = i14;
    9250         322 :          if ((HEAP8[i14 + 10913 | 0] & 8) == 0) {
    9251         322 :           break L143;
    9252         322 :          }
    9253         322 :          while (1) {
    9254         322 :           if ((i14 | 0) == 13 | (i14 | 0) == 10) {
    9255         322 :            _inclinenumber(i2);
    9256         322 :            i14 = HEAP32[i2 >> 2] | 0;
    9257         322 :           } else {
    9258         322 :            i8 = HEAP32[i5 >> 2] | 0;
    9259         322 :            i27 = HEAP32[i8 >> 2] | 0;
    9260         322 :            HEAP32[i8 >> 2] = i27 + -1;
    9261         322 :            if ((i27 | 0) == 0) {
    9262         322 :             i14 = _luaZ_fill(i8) | 0;
    9263         322 :            } else {
    9264         322 :             i27 = i8 + 4 | 0;
    9265         322 :             i14 = HEAP32[i27 >> 2] | 0;
    9266         322 :             HEAP32[i27 >> 2] = i14 + 1;
    9267         322 :             i14 = HEAPU8[i14] | 0;
    9268         322 :            }
    9269         322 :            HEAP32[i2 >> 2] = i14;
    9270         322 :           }
    9271         322 :           if ((HEAP8[i14 + 10913 | 0] & 8) == 0) {
    9272         322 :            break L143;
    9273         322 :           }
    9274         322 :          }
    9275         322 :         }
    9276         322 :        case 118:
    9277         322 :         {
    9278         322 :          i8 = 11;
    9279         322 :          i9 = 124;
    9280         322 :          break;
    9281         322 :         }
    9282         322 :        case 120:
    9283         322 :         {
    9284         322 :          HEAP32[i12 >> 2] = 120;
    9285         322 :          i14 = 1;
    9286         322 :          i8 = 0;
    9287         322 :          while (1) {
    9288         322 :           i9 = HEAP32[i5 >> 2] | 0;
    9289         322 :           i27 = HEAP32[i9 >> 2] | 0;
    9290         322 :           HEAP32[i9 >> 2] = i27 + -1;
    9291         322 :           if ((i27 | 0) == 0) {
    9292         322 :            i9 = _luaZ_fill(i9) | 0;
    9293         322 :           } else {
    9294         322 :            i27 = i9 + 4 | 0;
    9295         322 :            i9 = HEAP32[i27 >> 2] | 0;
    9296         322 :            HEAP32[i27 >> 2] = i9 + 1;
    9297         322 :            i9 = HEAPU8[i9] | 0;
    9298         322 :           }
    9299         322 :           HEAP32[i2 >> 2] = i9;
    9300         322 :           HEAP32[i12 + (i14 << 2) >> 2] = i9;
    9301         322 :           if ((HEAP8[i9 + 10913 | 0] & 16) == 0) {
    9302         322 :            i9 = 100;
    9303         322 :            break L141;
    9304         322 :           }
    9305         322 :           i8 = (_luaO_hexavalue(i9) | 0) + (i8 << 4) | 0;
    9306         322 :           i14 = i14 + 1 | 0;
    9307         322 :           if ((i14 | 0) >= 3) {
    9308         322 :            i9 = 124;
    9309         322 :            break;
    9310         322 :           }
    9311         322 :          }
    9312         322 :          break;
    9313         322 :         }
    9314         322 :        case -1:
    9315         322 :         {
    9316         322 :          i14 = -1;
    9317         322 :          break L143;
    9318         322 :         }
    9319         322 :        case 98:
    9320         322 :         {
    9321         322 :          i8 = 8;
    9322         322 :          i9 = 124;
    9323         322 :          break;
    9324         322 :         }
    9325         322 :        case 102:
    9326         322 :         {
    9327         322 :          i8 = 12;
    9328         322 :          i9 = 124;
    9329         322 :          break;
    9330         322 :         }
    9331         322 :        case 110:
    9332         322 :         {
    9333         322 :          i8 = 10;
    9334         322 :          i9 = 124;
    9335         322 :          break;
    9336         322 :         }
    9337         322 :        case 114:
    9338         322 :         {
    9339         322 :          i8 = 13;
    9340         322 :          i9 = 124;
    9341         322 :          break;
    9342         322 :         }
    9343         322 :        case 116:
    9344         322 :         {
    9345         322 :          i8 = 9;
    9346         322 :          i9 = 124;
    9347         322 :          break;
    9348         322 :         }
    9349         322 :        case 97:
    9350         322 :         {
    9351         322 :          i8 = 7;
    9352         322 :          i9 = 124;
    9353         322 :          break;
    9354         322 :         }
    9355         322 :        default:
    9356         322 :         {
    9357         322 :          if ((HEAP8[i8 + 10913 | 0] & 2) == 0) {
    9358         322 :           i9 = 116;
    9359         322 :           break L141;
    9360         322 :          } else {
    9361         322 :           i15 = i8;
    9362         322 :           i14 = 0;
    9363         322 :           i8 = 0;
    9364         322 :          }
    9365         322 :          do {
    9366         322 :           if ((HEAP8[i15 + 10913 | 0] & 2) == 0) {
    9367         322 :            break;
    9368         322 :           }
    9369         322 :           HEAP32[i12 + (i14 << 2) >> 2] = i15;
    9370         322 :           i8 = i15 + -48 + (i8 * 10 | 0) | 0;
    9371         322 :           i15 = HEAP32[i5 >> 2] | 0;
    9372         322 :           i27 = HEAP32[i15 >> 2] | 0;
    9373         322 :           HEAP32[i15 >> 2] = i27 + -1;
    9374         322 :           if ((i27 | 0) == 0) {
    9375         322 :            i15 = _luaZ_fill(i15) | 0;
    9376         322 :           } else {
    9377         322 :            i27 = i15 + 4 | 0;
    9378         322 :            i15 = HEAP32[i27 >> 2] | 0;
    9379         322 :            HEAP32[i27 >> 2] = i15 + 1;
    9380         322 :            i15 = HEAPU8[i15] | 0;
    9381         322 :           }
    9382         322 :           HEAP32[i2 >> 2] = i15;
    9383         322 :           i14 = i14 + 1 | 0;
    9384         322 :          } while ((i14 | 0) < 3);
    9385         322 :          if ((i8 | 0) > 255) {
    9386         322 :           i9 = 123;
    9387         322 :           break L141;
    9388         322 :          }
    9389         322 :         }
    9390         322 :        }
    9391         322 :        if ((i9 | 0) == 124) {
    9392         322 :         i9 = 0;
    9393         322 :         i14 = HEAP32[i5 >> 2] | 0;
    9394         322 :         i27 = HEAP32[i14 >> 2] | 0;
    9395         322 :         HEAP32[i14 >> 2] = i27 + -1;
    9396         322 :         if ((i27 | 0) == 0) {
    9397         322 :          i14 = _luaZ_fill(i14) | 0;
    9398         322 :         } else {
    9399         322 :          i27 = i14 + 4 | 0;
    9400         322 :          i14 = HEAP32[i27 >> 2] | 0;
    9401         322 :          HEAP32[i27 >> 2] = i14 + 1;
    9402         322 :          i14 = HEAPU8[i14] | 0;
    9403         322 :         }
    9404         322 :         HEAP32[i2 >> 2] = i14;
    9405         322 :        }
    9406         322 :        i15 = HEAP32[i4 >> 2] | 0;
    9407         322 :        i14 = i15 + 4 | 0;
    9408         322 :        i18 = HEAP32[i14 >> 2] | 0;
    9409         322 :        i16 = i15 + 8 | 0;
    9410         322 :        i17 = HEAP32[i16 >> 2] | 0;
    9411         322 :        if ((i18 + 1 | 0) >>> 0 > i17 >>> 0) {
    9412         322 :         if (i17 >>> 0 > 2147483645) {
    9413         322 :          i9 = 131;
    9414         322 :          break L141;
    9415         322 :         }
    9416         322 :         i18 = i17 << 1;
    9417         322 :         i19 = HEAP32[i7 >> 2] | 0;
    9418         322 :         if ((i18 | 0) == -2) {
    9419         322 :          i9 = 133;
    9420         322 :          break L141;
    9421         322 :         }
    9422         322 :         i27 = _luaM_realloc_(i19, HEAP32[i15 >> 2] | 0, i17, i18) | 0;
    9423         322 :         HEAP32[i15 >> 2] = i27;
    9424         322 :         HEAP32[i16 >> 2] = i18;
    9425         322 :         i18 = HEAP32[i14 >> 2] | 0;
    9426         322 :         i15 = i27;
    9427         322 :        } else {
    9428         322 :         i15 = HEAP32[i15 >> 2] | 0;
    9429         322 :        }
    9430         322 :        HEAP32[i14 >> 2] = i18 + 1;
    9431         322 :        HEAP8[i15 + i18 | 0] = i8;
    9432         322 :        i14 = HEAP32[i2 >> 2] | 0;
    9433         322 :       } else if ((i14 | 0) == -1) {
    9434         322 :        i9 = 82;
    9435         322 :        break L141;
    9436         322 :       } else if ((i14 | 0) == 13 | (i14 | 0) == 10) {
    9437         322 :        i9 = 83;
    9438         322 :        break L141;
    9439         322 :       } else {
    9440         322 :        i15 = HEAP32[i4 >> 2] | 0;
    9441         322 :        i8 = i15 + 4 | 0;
    9442         322 :        i18 = HEAP32[i8 >> 2] | 0;
    9443         322 :        i17 = i15 + 8 | 0;
    9444         322 :        i16 = HEAP32[i17 >> 2] | 0;
    9445         322 :        if ((i18 + 1 | 0) >>> 0 > i16 >>> 0) {
    9446         322 :         if (i16 >>> 0 > 2147483645) {
    9447         322 :          i9 = 139;
    9448         322 :          break L141;
    9449         322 :         }
    9450         322 :         i19 = i16 << 1;
    9451         322 :         i18 = HEAP32[i7 >> 2] | 0;
    9452         322 :         if ((i19 | 0) == -2) {
    9453         322 :          i9 = 141;
    9454         322 :          break L141;
    9455         322 :         }
    9456         322 :         i27 = _luaM_realloc_(i18, HEAP32[i15 >> 2] | 0, i16, i19) | 0;
    9457         322 :         HEAP32[i15 >> 2] = i27;
    9458         322 :         HEAP32[i17 >> 2] = i19;
    9459         322 :         i18 = HEAP32[i8 >> 2] | 0;
    9460         322 :         i15 = i27;
    9461         322 :        } else {
    9462         322 :         i15 = HEAP32[i15 >> 2] | 0;
    9463         322 :        }
    9464         322 :        HEAP32[i8 >> 2] = i18 + 1;
    9465         322 :        HEAP8[i15 + i18 | 0] = i14;
    9466         322 :        i8 = HEAP32[i5 >> 2] | 0;
    9467         322 :        i27 = HEAP32[i8 >> 2] | 0;
    9468         322 :        HEAP32[i8 >> 2] = i27 + -1;
    9469         322 :        if ((i27 | 0) == 0) {
    9470         322 :         i14 = _luaZ_fill(i8) | 0;
    9471         322 :        } else {
    9472         322 :         i27 = i8 + 4 | 0;
    9473         322 :         i14 = HEAP32[i27 >> 2] | 0;
    9474         322 :         HEAP32[i27 >> 2] = i14 + 1;
    9475         322 :         i14 = HEAPU8[i14] | 0;
    9476         322 :        }
    9477         322 :        HEAP32[i2 >> 2] = i14;
    9478         322 :       }
    9479         322 :      } while (0);
    9480         322 :      if ((i14 | 0) == (i13 | 0)) {
    9481         322 :       break L139;
    9482         322 :      }
    9483         322 :     }
    9484         322 :     if ((i9 | 0) == 82) {
    9485         322 :      _lexerror(i2, 12400, 286);
    9486         322 :     } else if ((i9 | 0) == 83) {
    9487         322 :      _lexerror(i2, 12400, 289);
    9488         322 :     } else if ((i9 | 0) == 100) {
    9489         322 :      _escerror(i2, i12, i14 + 1 | 0, 12480);
    9490         322 :     } else if ((i9 | 0) == 116) {
    9491         322 :      _escerror(i2, i2, 1, 12424);
    9492         322 :     } else if ((i9 | 0) == 123) {
    9493         322 :      _escerror(i2, i12, i14, 12448);
    9494         322 :     } else if ((i9 | 0) == 131) {
    9495         322 :      _lexerror(i2, 12368, 0);
    9496         322 :     } else if ((i9 | 0) == 133) {
    9497         322 :      _luaM_toobig(i19);
    9498         322 :     } else if ((i9 | 0) == 139) {
    9499         322 :      _lexerror(i2, 12368, 0);
    9500         322 :     } else if ((i9 | 0) == 141) {
    9501         322 :      _luaM_toobig(i18);
    9502         322 :     }
    9503         322 :    }
    9504         322 :   } while (0);
    9505         322 :   i7 = HEAP32[i4 >> 2] | 0;
    9506         322 :   i8 = i7 + 4 | 0;
    9507         322 :   i13 = HEAP32[i8 >> 2] | 0;
    9508         322 :   i12 = i7 + 8 | 0;
    9509         322 :   i9 = HEAP32[i12 >> 2] | 0;
    9510         322 :   do {
    9511         322 :    if ((i13 + 1 | 0) >>> 0 > i9 >>> 0) {
    9512         322 :     if (i9 >>> 0 > 2147483645) {
    9513         322 :      _lexerror(i2, 12368, 0);
    9514         322 :     }
    9515         322 :     i14 = i9 << 1;
    9516         322 :     i13 = HEAP32[i2 + 52 >> 2] | 0;
    9517         322 :     if ((i14 | 0) == -2) {
    9518         322 :      _luaM_toobig(i13);
    9519         322 :     } else {
    9520         322 :      i11 = _luaM_realloc_(i13, HEAP32[i7 >> 2] | 0, i9, i14) | 0;
    9521         322 :      HEAP32[i7 >> 2] = i11;
    9522         322 :      HEAP32[i12 >> 2] = i14;
    9523         322 :      i10 = HEAP32[i8 >> 2] | 0;
    9524         322 :      break;
    9525         322 :     }
    9526         322 :    } else {
    9527         322 :     i10 = i13;
    9528         322 :     i11 = HEAP32[i7 >> 2] | 0;
    9529         322 :    }
    9530         322 :   } while (0);
    9531         322 :   HEAP32[i8 >> 2] = i10 + 1;
    9532         322 :   HEAP8[i11 + i10 | 0] = i6;
    9533         322 :   i5 = HEAP32[i5 >> 2] | 0;
    9534         322 :   i27 = HEAP32[i5 >> 2] | 0;
    9535         322 :   HEAP32[i5 >> 2] = i27 + -1;
    9536         322 :   if ((i27 | 0) == 0) {
    9537         322 :    i5 = _luaZ_fill(i5) | 0;
    9538         322 :   } else {
    9539         322 :    i27 = i5 + 4 | 0;
    9540         322 :    i5 = HEAP32[i27 >> 2] | 0;
    9541         322 :    HEAP32[i27 >> 2] = i5 + 1;
    9542         322 :    i5 = HEAPU8[i5] | 0;
    9543         322 :   }
    9544         322 :   HEAP32[i2 >> 2] = i5;
    9545         322 :   i5 = HEAP32[i4 >> 2] | 0;
    9546         322 :   i4 = HEAP32[i2 + 52 >> 2] | 0;
    9547         322 :   i5 = _luaS_newlstr(i4, (HEAP32[i5 >> 2] | 0) + 1 | 0, (HEAP32[i5 + 4 >> 2] | 0) + -2 | 0) | 0;
    9548         322 :   i6 = i4 + 8 | 0;
    9549         322 :   i7 = HEAP32[i6 >> 2] | 0;
    9550         322 :   HEAP32[i6 >> 2] = i7 + 16;
    9551         322 :   HEAP32[i7 >> 2] = i5;
    9552         322 :   HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 64;
    9553         322 :   i7 = _luaH_set(i4, HEAP32[(HEAP32[i2 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i6 >> 2] | 0) + -16 | 0) | 0;
    9554         322 :   i2 = i7 + 8 | 0;
    9555         322 :   if ((HEAP32[i2 >> 2] | 0) == 0 ? (HEAP32[i7 >> 2] = 1, HEAP32[i2 >> 2] = 1, (HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
    9556         322 :    _luaC_step(i4);
    9557         322 :   }
    9558         322 :   HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + -16;
    9559         322 :   HEAP32[i3 >> 2] = i5;
    9560         322 :   i27 = 289;
    9561         322 :   STACKTOP = i1;
    9562         322 :   return i27 | 0;
    9563         322 :  } else if ((i9 | 0) == 161) {
    9564         322 :   i10 = HEAP32[i4 >> 2] | 0;
    9565         322 :   i9 = i10 + 4 | 0;
    9566         322 :   i13 = HEAP32[i9 >> 2] | 0;
    9567         322 :   i12 = i10 + 8 | 0;
    9568         322 :   i11 = HEAP32[i12 >> 2] | 0;
    9569         322 :   do {
    9570         322 :    if ((i13 + 1 | 0) >>> 0 > i11 >>> 0) {
    9571         322 :     if (i11 >>> 0 > 2147483645) {
    9572         322 :      _lexerror(i2, 12368, 0);
    9573         322 :     }
    9574         322 :     i13 = i11 << 1;
    9575         322 :     i20 = HEAP32[i2 + 52 >> 2] | 0;
    9576         322 :     if ((i13 | 0) == -2) {
    9577         322 :      _luaM_toobig(i20);
    9578         322 :     } else {
    9579         322 :      i25 = _luaM_realloc_(i20, HEAP32[i10 >> 2] | 0, i11, i13) | 0;
    9580         322 :      HEAP32[i10 >> 2] = i25;
    9581         322 :      HEAP32[i12 >> 2] = i13;
    9582         322 :      i26 = HEAP32[i9 >> 2] | 0;
    9583         322 :      break;
    9584         322 :     }
    9585         322 :    } else {
    9586         322 :     i26 = i13;
    9587         322 :     i25 = HEAP32[i10 >> 2] | 0;
    9588         322 :    }
    9589         322 :   } while (0);
    9590         322 :   HEAP32[i9 >> 2] = i26 + 1;
    9591         322 :   HEAP8[i25 + i26 | 0] = 46;
    9592         322 :   i9 = HEAP32[i5 >> 2] | 0;
    9593         322 :   i27 = HEAP32[i9 >> 2] | 0;
    9594         322 :   HEAP32[i9 >> 2] = i27 + -1;
    9595         322 :   if ((i27 | 0) == 0) {
    9596         322 :    i20 = _luaZ_fill(i9) | 0;
    9597         322 :   } else {
    9598         322 :    i27 = i9 + 4 | 0;
    9599         322 :    i20 = HEAP32[i27 >> 2] | 0;
    9600         322 :    HEAP32[i27 >> 2] = i20 + 1;
    9601         322 :    i20 = HEAPU8[i20] | 0;
    9602         322 :   }
    9603         322 :   HEAP32[i2 >> 2] = i20;
    9604         322 :   if ((i20 | 0) != 0 ? (_memchr(12304, i20, 2) | 0) != 0 : 0) {
    9605         322 :    i6 = HEAP32[i4 >> 2] | 0;
    9606         322 :    i3 = i6 + 4 | 0;
    9607         322 :    i9 = HEAP32[i3 >> 2] | 0;
    9608         322 :    i8 = i6 + 8 | 0;
    9609         322 :    i7 = HEAP32[i8 >> 2] | 0;
    9610         322 :    do {
    9611         322 :     if ((i9 + 1 | 0) >>> 0 > i7 >>> 0) {
    9612         322 :      if (i7 >>> 0 > 2147483645) {
    9613         322 :       _lexerror(i2, 12368, 0);
    9614         322 :      }
    9615         322 :      i9 = i7 << 1;
    9616         322 :      i10 = HEAP32[i2 + 52 >> 2] | 0;
    9617         322 :      if ((i9 | 0) == -2) {
    9618         322 :       _luaM_toobig(i10);
    9619         322 :      } else {
    9620         322 :       i21 = _luaM_realloc_(i10, HEAP32[i6 >> 2] | 0, i7, i9) | 0;
    9621         322 :       HEAP32[i6 >> 2] = i21;
    9622         322 :       HEAP32[i8 >> 2] = i9;
    9623         322 :       i22 = HEAP32[i3 >> 2] | 0;
    9624         322 :       break;
    9625         322 :      }
    9626         322 :     } else {
    9627         322 :      i22 = i9;
    9628         322 :      i21 = HEAP32[i6 >> 2] | 0;
    9629         322 :     }
    9630         322 :    } while (0);
    9631         322 :    HEAP32[i3 >> 2] = i22 + 1;
    9632         322 :    HEAP8[i21 + i22 | 0] = i20;
    9633         322 :    i3 = HEAP32[i5 >> 2] | 0;
    9634         322 :    i27 = HEAP32[i3 >> 2] | 0;
    9635         322 :    HEAP32[i3 >> 2] = i27 + -1;
    9636         322 :    if ((i27 | 0) == 0) {
    9637         322 :     i3 = _luaZ_fill(i3) | 0;
    9638         322 :    } else {
    9639         322 :     i27 = i3 + 4 | 0;
    9640         322 :     i3 = HEAP32[i27 >> 2] | 0;
    9641         322 :     HEAP32[i27 >> 2] = i3 + 1;
    9642         322 :     i3 = HEAPU8[i3] | 0;
    9643         322 :    }
    9644         322 :    HEAP32[i2 >> 2] = i3;
    9645         322 :    if ((i3 | 0) == 0) {
    9646         322 :     i27 = 279;
    9647         322 :     STACKTOP = i1;
    9648         322 :     return i27 | 0;
    9649         322 :    }
    9650         322 :    if ((_memchr(12304, i3, 2) | 0) == 0) {
    9651         322 :     i27 = 279;
    9652         322 :     STACKTOP = i1;
    9653         322 :     return i27 | 0;
    9654         322 :    }
    9655         322 :    i6 = HEAP32[i4 >> 2] | 0;
    9656         322 :    i7 = i6 + 4 | 0;
    9657         322 :    i9 = HEAP32[i7 >> 2] | 0;
    9658         322 :    i8 = i6 + 8 | 0;
    9659         322 :    i4 = HEAP32[i8 >> 2] | 0;
    9660         322 :    do {
    9661         322 :     if ((i9 + 1 | 0) >>> 0 > i4 >>> 0) {
    9662         322 :      if (i4 >>> 0 > 2147483645) {
    9663         322 :       _lexerror(i2, 12368, 0);
    9664         322 :      }
    9665         322 :      i10 = i4 << 1;
    9666         322 :      i9 = HEAP32[i2 + 52 >> 2] | 0;
    9667         322 :      if ((i10 | 0) == -2) {
    9668         322 :       _luaM_toobig(i9);
    9669         322 :      } else {
    9670         322 :       i18 = _luaM_realloc_(i9, HEAP32[i6 >> 2] | 0, i4, i10) | 0;
    9671         322 :       HEAP32[i6 >> 2] = i18;
    9672         322 :       HEAP32[i8 >> 2] = i10;
    9673         322 :       i19 = HEAP32[i7 >> 2] | 0;
    9674         322 :       break;
    9675         322 :      }
    9676         322 :     } else {
    9677         322 :      i19 = i9;
    9678         322 :      i18 = HEAP32[i6 >> 2] | 0;
    9679         322 :     }
    9680         322 :    } while (0);
    9681         322 :    HEAP32[i7 >> 2] = i19 + 1;
    9682         322 :    HEAP8[i18 + i19 | 0] = i3;
    9683         322 :    i3 = HEAP32[i5 >> 2] | 0;
    9684         322 :    i27 = HEAP32[i3 >> 2] | 0;
    9685         322 :    HEAP32[i3 >> 2] = i27 + -1;
    9686         322 :    if ((i27 | 0) == 0) {
    9687         322 :     i3 = _luaZ_fill(i3) | 0;
    9688         322 :    } else {
    9689         322 :     i27 = i3 + 4 | 0;
    9690         322 :     i3 = HEAP32[i27 >> 2] | 0;
    9691         322 :     HEAP32[i27 >> 2] = i3 + 1;
    9692         322 :     i3 = HEAPU8[i3] | 0;
    9693         322 :    }
    9694         322 :    HEAP32[i2 >> 2] = i3;
    9695         322 :    i27 = 280;
    9696         322 :    STACKTOP = i1;
    9697         322 :    return i27 | 0;
    9698         322 :   }
    9699         322 :   if ((HEAP8[i20 + 10913 | 0] & 2) == 0) {
    9700         322 :    i27 = 46;
    9701         322 :    STACKTOP = i1;
    9702         322 :    return i27 | 0;
    9703         322 :   }
    9704         322 :  } else if ((i9 | 0) == 283) {
    9705         322 :   if ((HEAP8[i13 + 10913 | 0] & 1) == 0) {
    9706         322 :    i3 = HEAP32[i5 >> 2] | 0;
    9707         322 :    i27 = HEAP32[i3 >> 2] | 0;
    9708         322 :    HEAP32[i3 >> 2] = i27 + -1;
    9709         322 :    if ((i27 | 0) == 0) {
    9710         322 :     i3 = _luaZ_fill(i3) | 0;
    9711         322 :    } else {
    9712         322 :     i27 = i3 + 4 | 0;
    9713         322 :     i3 = HEAP32[i27 >> 2] | 0;
    9714         322 :     HEAP32[i27 >> 2] = i3 + 1;
    9715         322 :     i3 = HEAPU8[i3] | 0;
    9716         322 :    }
    9717         322 :    HEAP32[i2 >> 2] = i3;
    9718         322 :    i27 = i13;
    9719         322 :    STACKTOP = i1;
    9720         322 :    return i27 | 0;
    9721         322 :   }
    9722         322 :   i10 = i2 + 52 | 0;
    9723         322 :   while (1) {
    9724         322 :    i11 = HEAP32[i4 >> 2] | 0;
    9725         322 :    i9 = i11 + 4 | 0;
    9726         322 :    i12 = HEAP32[i9 >> 2] | 0;
    9727         322 :    i19 = i11 + 8 | 0;
    9728         322 :    i18 = HEAP32[i19 >> 2] | 0;
    9729         322 :    if ((i12 + 1 | 0) >>> 0 > i18 >>> 0) {
    9730         322 :     if (i18 >>> 0 > 2147483645) {
    9731         322 :      i9 = 288;
    9732         322 :      break;
    9733         322 :     }
    9734         322 :     i21 = i18 << 1;
    9735         322 :     i12 = HEAP32[i10 >> 2] | 0;
    9736         322 :     if ((i21 | 0) == -2) {
    9737         322 :      i9 = 290;
    9738         322 :      break;
    9739         322 :     }
    9740         322 :     i27 = _luaM_realloc_(i12, HEAP32[i11 >> 2] | 0, i18, i21) | 0;
    9741         322 :     HEAP32[i11 >> 2] = i27;
    9742         322 :     HEAP32[i19 >> 2] = i21;
    9743         322 :     i12 = HEAP32[i9 >> 2] | 0;
    9744         322 :     i11 = i27;
    9745         322 :    } else {
    9746         322 :     i11 = HEAP32[i11 >> 2] | 0;
    9747         322 :    }
    9748         322 :    HEAP32[i9 >> 2] = i12 + 1;
    9749         322 :    HEAP8[i11 + i12 | 0] = i13;
    9750         322 :    i9 = HEAP32[i5 >> 2] | 0;
    9751         322 :    i27 = HEAP32[i9 >> 2] | 0;
    9752         322 :    HEAP32[i9 >> 2] = i27 + -1;
    9753         322 :    if ((i27 | 0) == 0) {
    9754         322 :     i13 = _luaZ_fill(i9) | 0;
    9755         322 :    } else {
    9756         322 :     i27 = i9 + 4 | 0;
    9757         322 :     i13 = HEAP32[i27 >> 2] | 0;
    9758         322 :     HEAP32[i27 >> 2] = i13 + 1;
    9759         322 :     i13 = HEAPU8[i13] | 0;
    9760         322 :    }
    9761         322 :    HEAP32[i2 >> 2] = i13;
    9762         322 :    if ((HEAP8[i13 + 10913 | 0] & 3) == 0) {
    9763         322 :     i9 = 296;
    9764         322 :     break;
    9765         322 :    }
    9766         322 :   }
    9767         322 :   if ((i9 | 0) == 288) {
    9768         322 :    _lexerror(i2, 12368, 0);
    9769         322 :   } else if ((i9 | 0) == 290) {
    9770         322 :    _luaM_toobig(i12);
    9771         322 :   } else if ((i9 | 0) == 296) {
    9772         322 :    i6 = HEAP32[i4 >> 2] | 0;
    9773         322 :    i4 = HEAP32[i10 >> 2] | 0;
    9774         322 :    i6 = _luaS_newlstr(i4, HEAP32[i6 >> 2] | 0, HEAP32[i6 + 4 >> 2] | 0) | 0;
    9775         322 :    i7 = i4 + 8 | 0;
    9776         322 :    i8 = HEAP32[i7 >> 2] | 0;
    9777         322 :    HEAP32[i7 >> 2] = i8 + 16;
    9778         322 :    HEAP32[i8 >> 2] = i6;
    9779         322 :    i5 = i6 + 4 | 0;
    9780         322 :    HEAP32[i8 + 8 >> 2] = HEAPU8[i5] | 64;
    9781         322 :    i8 = _luaH_set(i4, HEAP32[(HEAP32[i2 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i7 >> 2] | 0) + -16 | 0) | 0;
    9782         322 :    i2 = i8 + 8 | 0;
    9783         322 :    if ((HEAP32[i2 >> 2] | 0) == 0 ? (HEAP32[i8 >> 2] = 1, HEAP32[i2 >> 2] = 1, (HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
    9784         322 :     _luaC_step(i4);
    9785         322 :    }
    9786         322 :    HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16;
    9787         322 :    HEAP32[i3 >> 2] = i6;
    9788         322 :    if ((HEAP8[i5] | 0) != 4) {
    9789         322 :     i27 = 288;
    9790         322 :     STACKTOP = i1;
    9791         322 :     return i27 | 0;
    9792         322 :    }
    9793         322 :    i2 = HEAP8[i6 + 6 | 0] | 0;
    9794         322 :    if (i2 << 24 >> 24 == 0) {
    9795         322 :     i27 = 288;
    9796         322 :     STACKTOP = i1;
    9797         322 :     return i27 | 0;
    9798         322 :    }
    9799         322 :    i27 = i2 & 255 | 256;
    9800         322 :    STACKTOP = i1;
    9801         322 :    return i27 | 0;
    9802         322 :   }
    9803         322 :  } else if ((i9 | 0) == 306) {
    9804         322 :   STACKTOP = i1;
    9805         322 :   return i2 | 0;
    9806         322 :  }
    9807         322 :  i9 = HEAP32[i4 >> 2] | 0;
    9808         322 :  i12 = i9 + 4 | 0;
    9809         322 :  i13 = HEAP32[i12 >> 2] | 0;
    9810         322 :  i11 = i9 + 8 | 0;
    9811         322 :  i10 = HEAP32[i11 >> 2] | 0;
    9812         322 :  do {
    9813         322 :   if ((i13 + 1 | 0) >>> 0 > i10 >>> 0) {
    9814         322 :    if (i10 >>> 0 > 2147483645) {
    9815         322 :     _lexerror(i2, 12368, 0);
    9816         322 :    }
    9817         322 :    i18 = i10 << 1;
    9818         322 :    i13 = HEAP32[i2 + 52 >> 2] | 0;
    9819         322 :    if ((i18 | 0) == -2) {
    9820         322 :     _luaM_toobig(i13);
    9821         322 :    } else {
    9822         322 :     i16 = _luaM_realloc_(i13, HEAP32[i9 >> 2] | 0, i10, i18) | 0;
    9823         322 :     HEAP32[i9 >> 2] = i16;
    9824         322 :     HEAP32[i11 >> 2] = i18;
    9825         322 :     i17 = HEAP32[i12 >> 2] | 0;
    9826         322 :     break;
    9827         322 :    }
    9828         322 :   } else {
    9829         322 :    i17 = i13;
    9830         322 :    i16 = HEAP32[i9 >> 2] | 0;
    9831         322 :   }
    9832         322 :  } while (0);
    9833         322 :  HEAP32[i12 >> 2] = i17 + 1;
    9834         322 :  HEAP8[i16 + i17 | 0] = i20;
    9835         322 :  i9 = HEAP32[i5 >> 2] | 0;
    9836         322 :  i27 = HEAP32[i9 >> 2] | 0;
    9837         322 :  HEAP32[i9 >> 2] = i27 + -1;
    9838         322 :  if ((i27 | 0) == 0) {
    9839         322 :   i9 = _luaZ_fill(i9) | 0;
    9840         322 :  } else {
    9841         322 :   i27 = i9 + 4 | 0;
    9842         322 :   i9 = HEAP32[i27 >> 2] | 0;
    9843         322 :   HEAP32[i27 >> 2] = i9 + 1;
    9844         322 :   i9 = HEAPU8[i9] | 0;
    9845         322 :  }
    9846         322 :  HEAP32[i2 >> 2] = i9;
    9847         322 :  if ((i20 | 0) == 48) {
    9848         322 :   if ((i9 | 0) != 0) {
    9849         322 :    if ((_memchr(12320, i9, 3) | 0) == 0) {
    9850         322 :     i15 = i9;
    9851         322 :     i9 = 12312;
    9852         322 :    } else {
    9853         322 :     i10 = HEAP32[i4 >> 2] | 0;
    9854         322 :     i13 = i10 + 4 | 0;
    9855         322 :     i16 = HEAP32[i13 >> 2] | 0;
    9856         322 :     i11 = i10 + 8 | 0;
    9857         322 :     i12 = HEAP32[i11 >> 2] | 0;
    9858         322 :     do {
    9859         322 :      if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) {
    9860         322 :       if (i12 >>> 0 > 2147483645) {
    9861         322 :        _lexerror(i2, 12368, 0);
    9862         322 :       }
    9863         322 :       i17 = i12 << 1;
    9864         322 :       i16 = HEAP32[i2 + 52 >> 2] | 0;
    9865         322 :       if ((i17 | 0) == -2) {
    9866         322 :        _luaM_toobig(i16);
    9867         322 :       } else {
    9868         322 :        i15 = _luaM_realloc_(i16, HEAP32[i10 >> 2] | 0, i12, i17) | 0;
    9869         322 :        HEAP32[i10 >> 2] = i15;
    9870         322 :        HEAP32[i11 >> 2] = i17;
    9871         322 :        i14 = HEAP32[i13 >> 2] | 0;
    9872         322 :        break;
    9873         322 :       }
    9874         322 :      } else {
    9875         322 :       i14 = i16;
    9876         322 :       i15 = HEAP32[i10 >> 2] | 0;
    9877         322 :      }
    9878         322 :     } while (0);
    9879         322 :     HEAP32[i13 >> 2] = i14 + 1;
    9880         322 :     HEAP8[i15 + i14 | 0] = i9;
    9881         322 :     i9 = HEAP32[i5 >> 2] | 0;
    9882         322 :     i27 = HEAP32[i9 >> 2] | 0;
    9883         322 :     HEAP32[i9 >> 2] = i27 + -1;
    9884         322 :     if ((i27 | 0) == 0) {
    9885         322 :      i15 = _luaZ_fill(i9) | 0;
    9886         322 :     } else {
    9887         322 :      i27 = i9 + 4 | 0;
    9888         322 :      i15 = HEAP32[i27 >> 2] | 0;
    9889         322 :      HEAP32[i27 >> 2] = i15 + 1;
    9890         322 :      i15 = HEAPU8[i15] | 0;
    9891         322 :     }
    9892         322 :     HEAP32[i2 >> 2] = i15;
    9893         322 :     i9 = 12328;
    9894         322 :    }
    9895         322 :   } else {
    9896         322 :    i15 = 0;
    9897         322 :    i9 = 12312;
    9898         322 :   }
    9899         322 :  } else {
    9900         322 :   i15 = i9;
    9901         322 :   i9 = 12312;
    9902         322 :  }
    9903         322 :  i10 = i2 + 52 | 0;
    9904         322 :  while (1) {
    9905         322 :   if ((i15 | 0) != 0) {
    9906         322 :    if ((_memchr(i9, i15, 3) | 0) != 0) {
    9907         322 :     i12 = HEAP32[i4 >> 2] | 0;
    9908         322 :     i11 = i12 + 4 | 0;
    9909         322 :     i16 = HEAP32[i11 >> 2] | 0;
    9910         322 :     i14 = i12 + 8 | 0;
    9911         322 :     i13 = HEAP32[i14 >> 2] | 0;
    9912         322 :     if ((i16 + 1 | 0) >>> 0 > i13 >>> 0) {
    9913         322 :      if (i13 >>> 0 > 2147483645) {
    9914         322 :       i9 = 227;
    9915         322 :       break;
    9916         322 :      }
    9917         322 :      i17 = i13 << 1;
    9918         322 :      i16 = HEAP32[i10 >> 2] | 0;
    9919         322 :      if ((i17 | 0) == -2) {
    9920         322 :       i9 = 229;
    9921         322 :       break;
    9922         322 :      }
    9923         322 :      i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0;
    9924         322 :      HEAP32[i12 >> 2] = i27;
    9925         322 :      HEAP32[i14 >> 2] = i17;
    9926         322 :      i16 = HEAP32[i11 >> 2] | 0;
    9927         322 :      i12 = i27;
    9928         322 :     } else {
    9929         322 :      i12 = HEAP32[i12 >> 2] | 0;
    9930         322 :     }
    9931         322 :     HEAP32[i11 >> 2] = i16 + 1;
    9932         322 :     HEAP8[i12 + i16 | 0] = i15;
    9933         322 :     i11 = HEAP32[i5 >> 2] | 0;
    9934         322 :     i27 = HEAP32[i11 >> 2] | 0;
    9935         322 :     HEAP32[i11 >> 2] = i27 + -1;
    9936         322 :     if ((i27 | 0) == 0) {
    9937         322 :      i15 = _luaZ_fill(i11) | 0;
    9938         322 :     } else {
    9939         322 :      i27 = i11 + 4 | 0;
    9940         322 :      i15 = HEAP32[i27 >> 2] | 0;
    9941         322 :      HEAP32[i27 >> 2] = i15 + 1;
    9942         322 :      i15 = HEAPU8[i15] | 0;
    9943         322 :     }
    9944         322 :     HEAP32[i2 >> 2] = i15;
    9945         322 :     if ((i15 | 0) != 0) {
    9946         322 :      if ((_memchr(12336, i15, 3) | 0) != 0) {
    9947         322 :       i12 = HEAP32[i4 >> 2] | 0;
    9948         322 :       i11 = i12 + 4 | 0;
    9949         322 :       i16 = HEAP32[i11 >> 2] | 0;
    9950         322 :       i14 = i12 + 8 | 0;
    9951         322 :       i13 = HEAP32[i14 >> 2] | 0;
    9952         322 :       if ((i16 + 1 | 0) >>> 0 > i13 >>> 0) {
    9953         322 :        if (i13 >>> 0 > 2147483645) {
    9954         322 :         i9 = 239;
    9955         322 :         break;
    9956         322 :        }
    9957         322 :        i17 = i13 << 1;
    9958         322 :        i16 = HEAP32[i10 >> 2] | 0;
    9959         322 :        if ((i17 | 0) == -2) {
    9960         322 :         i9 = 241;
    9961         322 :         break;
    9962         322 :        }
    9963         322 :        i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0;
    9964         322 :        HEAP32[i12 >> 2] = i27;
    9965         322 :        HEAP32[i14 >> 2] = i17;
    9966         322 :        i16 = HEAP32[i11 >> 2] | 0;
    9967         322 :        i12 = i27;
    9968         322 :       } else {
    9969         322 :        i12 = HEAP32[i12 >> 2] | 0;
    9970         322 :       }
    9971         322 :       HEAP32[i11 >> 2] = i16 + 1;
    9972         322 :       HEAP8[i12 + i16 | 0] = i15;
    9973         322 :       i11 = HEAP32[i5 >> 2] | 0;
    9974         322 :       i27 = HEAP32[i11 >> 2] | 0;
    9975         322 :       HEAP32[i11 >> 2] = i27 + -1;
    9976         322 :       if ((i27 | 0) == 0) {
    9977         322 :        i15 = _luaZ_fill(i11) | 0;
    9978         322 :       } else {
    9979         322 :        i27 = i11 + 4 | 0;
    9980         322 :        i15 = HEAP32[i27 >> 2] | 0;
    9981         322 :        HEAP32[i27 >> 2] = i15 + 1;
    9982         322 :        i15 = HEAPU8[i15] | 0;
    9983         322 :       }
    9984         322 :       HEAP32[i2 >> 2] = i15;
    9985         322 :      }
    9986         322 :     } else {
    9987         322 :      i15 = 0;
    9988         322 :     }
    9989         322 :    }
    9990         322 :   } else {
    9991         322 :    i15 = 0;
    9992         322 :   }
    9993         322 :   i12 = HEAP32[i4 >> 2] | 0;
    9994         322 :   i11 = i12 + 4 | 0;
    9995         322 :   i17 = HEAP32[i11 >> 2] | 0;
    9996         322 :   i14 = i12 + 8 | 0;
    9997         322 :   i13 = HEAP32[i14 >> 2] | 0;
    9998         322 :   i16 = (i17 + 1 | 0) >>> 0 > i13 >>> 0;
    9999         322 :   if (!((HEAP8[i15 + 10913 | 0] & 16) != 0 | (i15 | 0) == 46)) {
   10000         322 :    i9 = 259;
   10001         322 :    break;
   10002         322 :   }
   10003         322 :   if (i16) {
   10004         322 :    if (i13 >>> 0 > 2147483645) {
   10005         322 :     i9 = 251;
   10006         322 :     break;
   10007         322 :    }
   10008         322 :    i17 = i13 << 1;
   10009         322 :    i16 = HEAP32[i10 >> 2] | 0;
   10010         322 :    if ((i17 | 0) == -2) {
   10011         322 :     i9 = 253;
   10012         322 :     break;
   10013         322 :    }
   10014         322 :    i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0;
   10015         322 :    HEAP32[i12 >> 2] = i27;
   10016         322 :    HEAP32[i14 >> 2] = i17;
   10017         322 :    i17 = HEAP32[i11 >> 2] | 0;
   10018         322 :    i12 = i27;
   10019         322 :   } else {
   10020         322 :    i12 = HEAP32[i12 >> 2] | 0;
   10021         322 :   }
   10022         322 :   HEAP32[i11 >> 2] = i17 + 1;
   10023         322 :   HEAP8[i12 + i17 | 0] = i15;
   10024         322 :   i11 = HEAP32[i5 >> 2] | 0;
   10025         322 :   i27 = HEAP32[i11 >> 2] | 0;
   10026         322 :   HEAP32[i11 >> 2] = i27 + -1;
   10027         322 :   if ((i27 | 0) == 0) {
   10028         322 :    i15 = _luaZ_fill(i11) | 0;
   10029         322 :   } else {
   10030         322 :    i27 = i11 + 4 | 0;
   10031         322 :    i15 = HEAP32[i27 >> 2] | 0;
   10032         322 :    HEAP32[i27 >> 2] = i15 + 1;
   10033         322 :    i15 = HEAPU8[i15] | 0;
   10034         322 :   }
   10035         322 :   HEAP32[i2 >> 2] = i15;
   10036         322 :  }
   10037         322 :  if ((i9 | 0) == 227) {
   10038         322 :   _lexerror(i2, 12368, 0);
   10039         322 :  } else if ((i9 | 0) == 229) {
   10040         322 :   _luaM_toobig(i16);
   10041         322 :  } else if ((i9 | 0) == 239) {
   10042         322 :   _lexerror(i2, 12368, 0);
   10043         322 :  } else if ((i9 | 0) == 241) {
   10044         322 :   _luaM_toobig(i16);
   10045         322 :  } else if ((i9 | 0) == 251) {
   10046         322 :   _lexerror(i2, 12368, 0);
   10047         322 :  } else if ((i9 | 0) == 253) {
   10048         322 :   _luaM_toobig(i16);
   10049         322 :  } else if ((i9 | 0) == 259) {
   10050         322 :   do {
   10051         322 :    if (i16) {
   10052         322 :     if (i13 >>> 0 > 2147483645) {
   10053         322 :      _lexerror(i2, 12368, 0);
   10054         322 :     }
   10055         322 :     i5 = i13 << 1;
   10056         322 :     i9 = HEAP32[i10 >> 2] | 0;
   10057         322 :     if ((i5 | 0) == -2) {
   10058         322 :      _luaM_toobig(i9);
   10059         322 :     } else {
   10060         322 :      i7 = _luaM_realloc_(i9, HEAP32[i12 >> 2] | 0, i13, i5) | 0;
   10061         322 :      HEAP32[i12 >> 2] = i7;
   10062         322 :      HEAP32[i14 >> 2] = i5;
   10063         322 :      i8 = HEAP32[i11 >> 2] | 0;
   10064         322 :      break;
   10065         322 :     }
   10066         322 :    } else {
   10067         322 :     i8 = i17;
   10068         322 :     i7 = HEAP32[i12 >> 2] | 0;
   10069         322 :    }
   10070         322 :   } while (0);
   10071         322 :   HEAP32[i11 >> 2] = i8 + 1;
   10072         322 :   HEAP8[i7 + i8 | 0] = 0;
   10073         322 :   i5 = i2 + 76 | 0;
   10074         322 :   i7 = HEAP8[i5] | 0;
   10075         322 :   i10 = HEAP32[i4 >> 2] | 0;
   10076         322 :   i8 = HEAP32[i10 >> 2] | 0;
   10077         322 :   i10 = HEAP32[i10 + 4 >> 2] | 0;
   10078         322 :   if ((i10 | 0) == 0) {
   10079         322 :    i7 = -1;
   10080         322 :   } else {
   10081         322 :    do {
   10082         322 :     i10 = i10 + -1 | 0;
   10083         322 :     i9 = i8 + i10 | 0;
   10084         322 :     if ((HEAP8[i9] | 0) == 46) {
   10085         322 :      HEAP8[i9] = i7;
   10086         322 :     }
   10087         322 :    } while ((i10 | 0) != 0);
   10088         322 :    i7 = HEAP32[i4 >> 2] | 0;
   10089         322 :    i8 = HEAP32[i7 >> 2] | 0;
   10090         322 :    i7 = (HEAP32[i7 + 4 >> 2] | 0) + -1 | 0;
   10091         322 :   }
   10092         322 :   if ((_luaO_str2d(i8, i7, i3) | 0) != 0) {
   10093         322 :    i27 = 287;
   10094         322 :    STACKTOP = i1;
   10095         322 :    return i27 | 0;
   10096         322 :   }
   10097         322 :   i9 = HEAP8[i5] | 0;
   10098         322 :   i8 = HEAP8[HEAP32[(_localeconv() | 0) >> 2] | 0] | 0;
   10099         322 :   HEAP8[i5] = i8;
   10100         322 :   i10 = HEAP32[i4 >> 2] | 0;
   10101         322 :   i7 = HEAP32[i10 >> 2] | 0;
   10102         322 :   i10 = HEAP32[i10 + 4 >> 2] | 0;
   10103         322 :   if ((i10 | 0) == 0) {
   10104         322 :    i8 = -1;
   10105         322 :   } else {
   10106         322 :    do {
   10107         322 :     i10 = i10 + -1 | 0;
   10108         322 :     i11 = i7 + i10 | 0;
   10109         322 :     if ((HEAP8[i11] | 0) == i9 << 24 >> 24) {
   10110         322 :      HEAP8[i11] = i8;
   10111         322 :     }
   10112         322 :    } while ((i10 | 0) != 0);
   10113         322 :    i8 = HEAP32[i4 >> 2] | 0;
   10114         322 :    i7 = HEAP32[i8 >> 2] | 0;
   10115         322 :    i8 = (HEAP32[i8 + 4 >> 2] | 0) + -1 | 0;
   10116         322 :   }
   10117         322 :   if ((_luaO_str2d(i7, i8, i3) | 0) != 0) {
   10118         322 :    i27 = 287;
   10119         322 :    STACKTOP = i1;
   10120         322 :    return i27 | 0;
   10121         322 :   }
   10122         322 :   i1 = HEAP8[i5] | 0;
   10123         322 :   i4 = HEAP32[i4 >> 2] | 0;
   10124         322 :   i3 = HEAP32[i4 >> 2] | 0;
   10125         322 :   i4 = HEAP32[i4 + 4 >> 2] | 0;
   10126         322 :   if ((i4 | 0) == 0) {
   10127         322 :    _lexerror(i2, 12344, 287);
   10128         322 :   } else {
   10129         322 :    i6 = i4;
   10130         322 :   }
   10131         322 :   do {
   10132         322 :    i6 = i6 + -1 | 0;
   10133         322 :    i4 = i3 + i6 | 0;
   10134         322 :    if ((HEAP8[i4] | 0) == i1 << 24 >> 24) {
   10135         322 :     HEAP8[i4] = 46;
   10136         322 :    }
   10137         322 :   } while ((i6 | 0) != 0);
   10138         322 :   _lexerror(i2, 12344, 287);
   10139         322 :  }
   10140         322 :  return 0;
   10141         322 : }
   10142           1 : function _luaV_execute(i1) {
   10143           1 :  i1 = i1 | 0;
   10144           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, d37 = 0.0, d38 = 0.0, d39 = 0.0;
   10145           1 :  i12 = STACKTOP;
   10146           1 :  STACKTOP = STACKTOP + 32 | 0;
   10147           1 :  i13 = i12 + 24 | 0;
   10148           1 :  i10 = i12 + 16 | 0;
   10149           1 :  i9 = i12 + 8 | 0;
   10150           1 :  i8 = i12;
   10151           1 :  i3 = i1 + 16 | 0;
   10152           1 :  i4 = i1 + 40 | 0;
   10153           1 :  i6 = i1 + 12 | 0;
   10154           1 :  i5 = i1 + 8 | 0;
   10155           1 :  i11 = i1 + 24 | 0;
   10156           1 :  i17 = i1 + 48 | 0;
   10157           1 :  i2 = i1 + 20 | 0;
   10158           1 :  i16 = i1 + 6 | 0;
   10159           1 :  i7 = i1 + 44 | 0;
   10160           1 :  i19 = HEAP32[i3 >> 2] | 0;
   10161           1 :  L1 : while (1) {
   10162           1 :   i22 = HEAP32[HEAP32[i19 >> 2] >> 2] | 0;
   10163           1 :   i18 = i22 + 12 | 0;
   10164           1 :   i23 = HEAP32[(HEAP32[i18 >> 2] | 0) + 8 >> 2] | 0;
   10165           1 :   i20 = i19 + 24 | 0;
   10166           1 :   i21 = i19 + 28 | 0;
   10167           1 :   i22 = i22 + 16 | 0;
   10168           1 :   i24 = i19 + 4 | 0;
   10169           1 :   i25 = HEAP32[i20 >> 2] | 0;
   10170           1 :   L3 : while (1) {
   10171           1 :    i28 = HEAP32[i21 >> 2] | 0;
   10172           1 :    HEAP32[i21 >> 2] = i28 + 4;
   10173           1 :    i28 = HEAP32[i28 >> 2] | 0;
   10174           1 :    i27 = HEAP8[i4] | 0;
   10175           1 :    do {
   10176           1 :     if (!((i27 & 12) == 0)) {
   10177           1 :      i26 = (HEAP32[i17 >> 2] | 0) + -1 | 0;
   10178           1 :      HEAP32[i17 >> 2] = i26;
   10179           1 :      i26 = (i26 | 0) == 0;
   10180           1 :      if (!i26 ? (i27 & 4) == 0 : 0) {
   10181           1 :       break;
   10182           1 :      }
   10183           1 :      i25 = HEAP32[i3 >> 2] | 0;
   10184           1 :      i29 = i27 & 255;
   10185           1 :      if ((i29 & 8 | 0) == 0 | i26 ^ 1) {
   10186           1 :       i27 = 0;
   10187           1 :      } else {
   10188           1 :       HEAP32[i17 >> 2] = HEAP32[i7 >> 2];
   10189           1 :       i27 = 1;
   10190           1 :      }
   10191           1 :      i26 = i25 + 18 | 0;
   10192           1 :      i30 = HEAPU8[i26] | 0;
   10193           1 :      if ((i30 & 128 | 0) == 0) {
   10194           1 :       if (i27) {
   10195           1 :        _luaD_hook(i1, 3, -1);
   10196           1 :       }
   10197           1 :       do {
   10198           1 :        if ((i29 & 4 | 0) == 0) {
   10199           1 :         i29 = i25 + 28 | 0;
   10200           1 :        } else {
   10201           1 :         i34 = HEAP32[(HEAP32[HEAP32[i25 >> 2] >> 2] | 0) + 12 >> 2] | 0;
   10202           1 :         i29 = i25 + 28 | 0;
   10203           1 :         i32 = HEAP32[i29 >> 2] | 0;
   10204           1 :         i35 = HEAP32[i34 + 12 >> 2] | 0;
   10205           1 :         i33 = (i32 - i35 >> 2) + -1 | 0;
   10206           1 :         i34 = HEAP32[i34 + 20 >> 2] | 0;
   10207           1 :         i31 = (i34 | 0) == 0;
   10208           1 :         if (i31) {
   10209           1 :          i30 = 0;
   10210           1 :         } else {
   10211           1 :          i30 = HEAP32[i34 + (i33 << 2) >> 2] | 0;
   10212           1 :         }
   10213           1 :         if ((i33 | 0) != 0 ? (i14 = HEAP32[i2 >> 2] | 0, i32 >>> 0 > i14 >>> 0) : 0) {
   10214           1 :          if (i31) {
   10215           1 :           i31 = 0;
   10216           1 :          } else {
   10217           1 :           i31 = HEAP32[i34 + ((i14 - i35 >> 2) + -1 << 2) >> 2] | 0;
   10218           1 :          }
   10219           1 :          if ((i30 | 0) == (i31 | 0)) {
   10220           1 :           break;
   10221           1 :          }
   10222           1 :         }
   10223           1 :         _luaD_hook(i1, 2, i30);
   10224           1 :        }
   10225           1 :       } while (0);
   10226           1 :       HEAP32[i2 >> 2] = HEAP32[i29 >> 2];
   10227           1 :       if ((HEAP8[i16] | 0) == 1) {
   10228           1 :        i15 = 23;
   10229           1 :        break L1;
   10230           1 :       }
   10231           1 :      } else {
   10232           1 :       HEAP8[i26] = i30 & 127;
   10233           1 :      }
   10234           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10235           1 :     }
   10236           1 :    } while (0);
   10237           1 :    i26 = i28 >>> 6 & 255;
   10238           1 :    i27 = i25 + (i26 << 4) | 0;
   10239           1 :    switch (i28 & 63 | 0) {
   10240           1 :    case 9:
   10241           1 :     {
   10242           1 :      i28 = HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0;
   10243           1 :      i35 = HEAP32[i28 + 8 >> 2] | 0;
   10244           1 :      i33 = i27;
   10245           1 :      i34 = HEAP32[i33 + 4 >> 2] | 0;
   10246           1 :      i36 = i35;
   10247           1 :      HEAP32[i36 >> 2] = HEAP32[i33 >> 2];
   10248           1 :      HEAP32[i36 + 4 >> 2] = i34;
   10249           1 :      i36 = i25 + (i26 << 4) + 8 | 0;
   10250           1 :      HEAP32[i35 + 8 >> 2] = HEAP32[i36 >> 2];
   10251           1 :      if ((HEAP32[i36 >> 2] & 64 | 0) == 0) {
   10252           1 :       continue L3;
   10253           1 :      }
   10254           1 :      i26 = HEAP32[i27 >> 2] | 0;
   10255           1 :      if ((HEAP8[i26 + 5 | 0] & 3) == 0) {
   10256           1 :       continue L3;
   10257           1 :      }
   10258           1 :      if ((HEAP8[i28 + 5 | 0] & 4) == 0) {
   10259           1 :       continue L3;
   10260           1 :      }
   10261           1 :      _luaC_barrier_(i1, i28, i26);
   10262           1 :      continue L3;
   10263           1 :     }
   10264           1 :    case 10:
   10265           1 :     {
   10266           1 :      i26 = i28 >>> 23;
   10267           1 :      if ((i26 & 256 | 0) == 0) {
   10268           1 :       i26 = i25 + (i26 << 4) | 0;
   10269           1 :      } else {
   10270           1 :       i26 = i23 + ((i26 & 255) << 4) | 0;
   10271           1 :      }
   10272           1 :      i28 = i28 >>> 14;
   10273           1 :      if ((i28 & 256 | 0) == 0) {
   10274           1 :       i25 = i25 + ((i28 & 511) << 4) | 0;
   10275           1 :      } else {
   10276           1 :       i25 = i23 + ((i28 & 255) << 4) | 0;
   10277           1 :      }
   10278           1 :      _luaV_settable(i1, i27, i26, i25);
   10279           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10280           1 :      continue L3;
   10281           1 :     }
   10282           1 :    case 17:
   10283           1 :     {
   10284           1 :      i29 = i28 >>> 23;
   10285           1 :      if ((i29 & 256 | 0) == 0) {
   10286           1 :       i29 = i25 + (i29 << 4) | 0;
   10287           1 :      } else {
   10288           1 :       i29 = i23 + ((i29 & 255) << 4) | 0;
   10289           1 :      }
   10290           1 :      i28 = i28 >>> 14;
   10291           1 :      if ((i28 & 256 | 0) == 0) {
   10292           1 :       i28 = i25 + ((i28 & 511) << 4) | 0;
   10293           1 :      } else {
   10294           1 :       i28 = i23 + ((i28 & 255) << 4) | 0;
   10295           1 :      }
   10296           1 :      if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
   10297           1 :       d37 = +HEAPF64[i29 >> 3];
   10298           1 :       d38 = +HEAPF64[i28 >> 3];
   10299           1 :       HEAPF64[i27 >> 3] = d37 - d38 * +Math_floor(+(d37 / d38));
   10300           1 :       HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
   10301           1 :       continue L3;
   10302           1 :      }
   10303           1 :      _luaV_arith(i1, i27, i29, i28, 10);
   10304           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10305           1 :      continue L3;
   10306           1 :     }
   10307           1 :    case 23:
   10308           1 :     {
   10309           1 :      if ((i26 | 0) != 0) {
   10310           1 :       _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i26 + -1 << 4) | 0);
   10311           1 :      }
   10312           1 :      HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
   10313           1 :      continue L3;
   10314           1 :     }
   10315           1 :    case 24:
   10316           1 :     {
   10317           1 :      i27 = i28 >>> 23;
   10318           1 :      if ((i27 & 256 | 0) == 0) {
   10319           1 :       i27 = i25 + (i27 << 4) | 0;
   10320           1 :      } else {
   10321           1 :       i27 = i23 + ((i27 & 255) << 4) | 0;
   10322           1 :      }
   10323           1 :      i28 = i28 >>> 14;
   10324           1 :      if ((i28 & 256 | 0) == 0) {
   10325           1 :       i25 = i25 + ((i28 & 511) << 4) | 0;
   10326           1 :      } else {
   10327           1 :       i25 = i23 + ((i28 & 255) << 4) | 0;
   10328           1 :      }
   10329           1 :      if ((HEAP32[i27 + 8 >> 2] | 0) == (HEAP32[i25 + 8 >> 2] | 0)) {
   10330           1 :       i27 = (_luaV_equalobj_(i1, i27, i25) | 0) != 0;
   10331           1 :      } else {
   10332           1 :       i27 = 0;
   10333           1 :      }
   10334           1 :      i25 = HEAP32[i21 >> 2] | 0;
   10335           1 :      if ((i27 & 1 | 0) == (i26 | 0)) {
   10336           1 :       i26 = HEAP32[i25 >> 2] | 0;
   10337           1 :       i27 = i26 >>> 6 & 255;
   10338           1 :       if ((i27 | 0) != 0) {
   10339           1 :        _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0);
   10340           1 :        i25 = HEAP32[i21 >> 2] | 0;
   10341           1 :       }
   10342           1 :       i25 = i25 + ((i26 >>> 14) + -131070 << 2) | 0;
   10343           1 :      } else {
   10344           1 :       i25 = i25 + 4 | 0;
   10345           1 :      }
   10346           1 :      HEAP32[i21 >> 2] = i25;
   10347           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10348           1 :      continue L3;
   10349           1 :     }
   10350           1 :    case 18:
   10351           1 :     {
   10352           1 :      i29 = i28 >>> 23;
   10353           1 :      if ((i29 & 256 | 0) == 0) {
   10354           1 :       i29 = i25 + (i29 << 4) | 0;
   10355           1 :      } else {
   10356           1 :       i29 = i23 + ((i29 & 255) << 4) | 0;
   10357           1 :      }
   10358           1 :      i28 = i28 >>> 14;
   10359           1 :      if ((i28 & 256 | 0) == 0) {
   10360           1 :       i28 = i25 + ((i28 & 511) << 4) | 0;
   10361           1 :      } else {
   10362           1 :       i28 = i23 + ((i28 & 255) << 4) | 0;
   10363           1 :      }
   10364           1 :      if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
   10365           1 :       HEAPF64[i27 >> 3] = +Math_pow(+(+HEAPF64[i29 >> 3]), +(+HEAPF64[i28 >> 3]));
   10366           1 :       HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
   10367           1 :       continue L3;
   10368           1 :      }
   10369           1 :      _luaV_arith(i1, i27, i29, i28, 11);
   10370           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10371           1 :      continue L3;
   10372           1 :     }
   10373           1 :    case 1:
   10374           1 :     {
   10375           1 :      i36 = i28 >>> 14;
   10376           1 :      i33 = i23 + (i36 << 4) | 0;
   10377           1 :      i34 = HEAP32[i33 + 4 >> 2] | 0;
   10378           1 :      i35 = i27;
   10379           1 :      HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
   10380           1 :      HEAP32[i35 + 4 >> 2] = i34;
   10381           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i23 + (i36 << 4) + 8 >> 2];
   10382           1 :      continue L3;
   10383           1 :     }
   10384           1 :    case 0:
   10385           1 :     {
   10386           1 :      i36 = i28 >>> 23;
   10387           1 :      i33 = i25 + (i36 << 4) | 0;
   10388           1 :      i34 = HEAP32[i33 + 4 >> 2] | 0;
   10389           1 :      i35 = i27;
   10390           1 :      HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
   10391           1 :      HEAP32[i35 + 4 >> 2] = i34;
   10392           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2];
   10393           1 :      continue L3;
   10394           1 :     }
   10395           1 :    case 2:
   10396           1 :     {
   10397           1 :      i36 = HEAP32[i21 >> 2] | 0;
   10398           1 :      HEAP32[i21 >> 2] = i36 + 4;
   10399           1 :      i36 = (HEAP32[i36 >> 2] | 0) >>> 6;
   10400           1 :      i33 = i23 + (i36 << 4) | 0;
   10401           1 :      i34 = HEAP32[i33 + 4 >> 2] | 0;
   10402           1 :      i35 = i27;
   10403           1 :      HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
   10404           1 :      HEAP32[i35 + 4 >> 2] = i34;
   10405           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i23 + (i36 << 4) + 8 >> 2];
   10406           1 :      continue L3;
   10407           1 :     }
   10408           1 :    case 5:
   10409           1 :     {
   10410           1 :      i36 = HEAP32[(HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0) + 8 >> 2] | 0;
   10411           1 :      i33 = i36;
   10412           1 :      i34 = HEAP32[i33 + 4 >> 2] | 0;
   10413           1 :      i35 = i27;
   10414           1 :      HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
   10415           1 :      HEAP32[i35 + 4 >> 2] = i34;
   10416           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i36 + 8 >> 2];
   10417           1 :      continue L3;
   10418           1 :     }
   10419           1 :    case 3:
   10420           1 :     {
   10421           1 :      HEAP32[i27 >> 2] = i28 >>> 23;
   10422           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = 1;
   10423           1 :      if ((i28 & 8372224 | 0) == 0) {
   10424           1 :       continue L3;
   10425           1 :      }
   10426           1 :      HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4;
   10427           1 :      continue L3;
   10428           1 :     }
   10429           1 :    case 7:
   10430           1 :     {
   10431           1 :      i26 = i28 >>> 14;
   10432           1 :      if ((i26 & 256 | 0) == 0) {
   10433           1 :       i26 = i25 + ((i26 & 511) << 4) | 0;
   10434           1 :      } else {
   10435           1 :       i26 = i23 + ((i26 & 255) << 4) | 0;
   10436           1 :      }
   10437           1 :      _luaV_gettable(i1, i25 + (i28 >>> 23 << 4) | 0, i26, i27);
   10438           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10439           1 :      continue L3;
   10440           1 :     }
   10441           1 :    case 12:
   10442           1 :     {
   10443           1 :      i36 = i28 >>> 23;
   10444           1 :      i29 = i25 + (i36 << 4) | 0;
   10445           1 :      i26 = i26 + 1 | 0;
   10446           1 :      i33 = i29;
   10447           1 :      i34 = HEAP32[i33 + 4 >> 2] | 0;
   10448           1 :      i35 = i25 + (i26 << 4) | 0;
   10449           1 :      HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
   10450           1 :      HEAP32[i35 + 4 >> 2] = i34;
   10451           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2];
   10452           1 :      i26 = i28 >>> 14;
   10453           1 :      if ((i26 & 256 | 0) == 0) {
   10454           1 :       i25 = i25 + ((i26 & 511) << 4) | 0;
   10455           1 :      } else {
   10456           1 :       i25 = i23 + ((i26 & 255) << 4) | 0;
   10457           1 :      }
   10458           1 :      _luaV_gettable(i1, i29, i25, i27);
   10459           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10460           1 :      continue L3;
   10461           1 :     }
   10462           1 :    case 13:
   10463           1 :     {
   10464           1 :      i29 = i28 >>> 23;
   10465           1 :      if ((i29 & 256 | 0) == 0) {
   10466           1 :       i29 = i25 + (i29 << 4) | 0;
   10467           1 :      } else {
   10468           1 :       i29 = i23 + ((i29 & 255) << 4) | 0;
   10469           1 :      }
   10470           1 :      i28 = i28 >>> 14;
   10471           1 :      if ((i28 & 256 | 0) == 0) {
   10472           1 :       i28 = i25 + ((i28 & 511) << 4) | 0;
   10473           1 :      } else {
   10474           1 :       i28 = i23 + ((i28 & 255) << 4) | 0;
   10475           1 :      }
   10476           1 :      if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
   10477           1 :       HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] + +HEAPF64[i28 >> 3];
   10478           1 :       HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
   10479           1 :       continue L3;
   10480           1 :      }
   10481           1 :      _luaV_arith(i1, i27, i29, i28, 6);
   10482           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10483           1 :      continue L3;
   10484           1 :     }
   10485           1 :    case 14:
   10486           1 :     {
   10487           1 :      i29 = i28 >>> 23;
   10488           1 :      if ((i29 & 256 | 0) == 0) {
   10489           1 :       i29 = i25 + (i29 << 4) | 0;
   10490           1 :      } else {
   10491           1 :       i29 = i23 + ((i29 & 255) << 4) | 0;
   10492           1 :      }
   10493           1 :      i28 = i28 >>> 14;
   10494           1 :      if ((i28 & 256 | 0) == 0) {
   10495           1 :       i28 = i25 + ((i28 & 511) << 4) | 0;
   10496           1 :      } else {
   10497           1 :       i28 = i23 + ((i28 & 255) << 4) | 0;
   10498           1 :      }
   10499           1 :      if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
   10500           1 :       HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] - +HEAPF64[i28 >> 3];
   10501           1 :       HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
   10502           1 :       continue L3;
   10503           1 :      }
   10504           1 :      _luaV_arith(i1, i27, i29, i28, 7);
   10505           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10506           1 :      continue L3;
   10507           1 :     }
   10508           1 :    case 6:
   10509           1 :     {
   10510           1 :      i26 = i28 >>> 14;
   10511           1 :      if ((i26 & 256 | 0) == 0) {
   10512           1 :       i25 = i25 + ((i26 & 511) << 4) | 0;
   10513           1 :      } else {
   10514           1 :       i25 = i23 + ((i26 & 255) << 4) | 0;
   10515           1 :      }
   10516           1 :      _luaV_gettable(i1, HEAP32[(HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0) + 8 >> 2] | 0, i25, i27);
   10517           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10518           1 :      continue L3;
   10519           1 :     }
   10520           1 :    case 4:
   10521           1 :     {
   10522           1 :      i26 = i28 >>> 23;
   10523           1 :      while (1) {
   10524           1 :       HEAP32[i27 + 8 >> 2] = 0;
   10525           1 :       if ((i26 | 0) == 0) {
   10526           1 :        continue L3;
   10527           1 :       } else {
   10528           1 :        i26 = i26 + -1 | 0;
   10529           1 :        i27 = i27 + 16 | 0;
   10530           1 :       }
   10531           1 :      }
   10532           1 :     }
   10533           1 :    case 8:
   10534           1 :     {
   10535           1 :      i27 = i28 >>> 23;
   10536           1 :      if ((i27 & 256 | 0) == 0) {
   10537           1 :       i27 = i25 + (i27 << 4) | 0;
   10538           1 :      } else {
   10539           1 :       i27 = i23 + ((i27 & 255) << 4) | 0;
   10540           1 :      }
   10541           1 :      i28 = i28 >>> 14;
   10542           1 :      if ((i28 & 256 | 0) == 0) {
   10543           1 :       i25 = i25 + ((i28 & 511) << 4) | 0;
   10544           1 :      } else {
   10545           1 :       i25 = i23 + ((i28 & 255) << 4) | 0;
   10546           1 :      }
   10547           1 :      _luaV_settable(i1, HEAP32[(HEAP32[i22 + (i26 << 2) >> 2] | 0) + 8 >> 2] | 0, i27, i25);
   10548           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10549           1 :      continue L3;
   10550           1 :     }
   10551           1 :    case 11:
   10552           1 :     {
   10553           1 :      i29 = i28 >>> 23;
   10554           1 :      i28 = i28 >>> 14 & 511;
   10555           1 :      i30 = _luaH_new(i1) | 0;
   10556           1 :      HEAP32[i27 >> 2] = i30;
   10557           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = 69;
   10558           1 :      if ((i28 | i29 | 0) != 0) {
   10559           1 :       i36 = _luaO_fb2int(i29) | 0;
   10560           1 :       _luaH_resize(i1, i30, i36, _luaO_fb2int(i28) | 0);
   10561           1 :      }
   10562           1 :      if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   10563           1 :       HEAP32[i5 >> 2] = i25 + (i26 + 1 << 4);
   10564           1 :       _luaC_step(i1);
   10565           1 :       HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
   10566           1 :      }
   10567           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10568           1 :      continue L3;
   10569           1 :     }
   10570           1 :    case 19:
   10571           1 :     {
   10572           1 :      i36 = i28 >>> 23;
   10573           1 :      i28 = i25 + (i36 << 4) | 0;
   10574           1 :      if ((HEAP32[i25 + (i36 << 4) + 8 >> 2] | 0) == 3) {
   10575           1 :       HEAPF64[i27 >> 3] = -+HEAPF64[i28 >> 3];
   10576           1 :       HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
   10577           1 :       continue L3;
   10578           1 :      } else {
   10579           1 :       _luaV_arith(i1, i27, i28, i28, 12);
   10580           1 :       i25 = HEAP32[i20 >> 2] | 0;
   10581           1 :       continue L3;
   10582           1 :      }
   10583           1 :     }
   10584           1 :    case 15:
   10585           1 :     {
   10586           1 :      i29 = i28 >>> 23;
   10587           1 :      if ((i29 & 256 | 0) == 0) {
   10588           1 :       i29 = i25 + (i29 << 4) | 0;
   10589           1 :      } else {
   10590           1 :       i29 = i23 + ((i29 & 255) << 4) | 0;
   10591           1 :      }
   10592           1 :      i28 = i28 >>> 14;
   10593           1 :      if ((i28 & 256 | 0) == 0) {
   10594           1 :       i28 = i25 + ((i28 & 511) << 4) | 0;
   10595           1 :      } else {
   10596           1 :       i28 = i23 + ((i28 & 255) << 4) | 0;
   10597           1 :      }
   10598           1 :      if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
   10599           1 :       HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] * +HEAPF64[i28 >> 3];
   10600           1 :       HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
   10601           1 :       continue L3;
   10602           1 :      }
   10603           1 :      _luaV_arith(i1, i27, i29, i28, 8);
   10604           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10605           1 :      continue L3;
   10606           1 :     }
   10607           1 :    case 16:
   10608           1 :     {
   10609           1 :      i29 = i28 >>> 23;
   10610           1 :      if ((i29 & 256 | 0) == 0) {
   10611           1 :       i29 = i25 + (i29 << 4) | 0;
   10612           1 :      } else {
   10613           1 :       i29 = i23 + ((i29 & 255) << 4) | 0;
   10614           1 :      }
   10615           1 :      i28 = i28 >>> 14;
   10616           1 :      if ((i28 & 256 | 0) == 0) {
   10617           1 :       i28 = i25 + ((i28 & 511) << 4) | 0;
   10618           1 :      } else {
   10619           1 :       i28 = i23 + ((i28 & 255) << 4) | 0;
   10620           1 :      }
   10621           1 :      if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
   10622           1 :       HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] / +HEAPF64[i28 >> 3];
   10623           1 :       HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
   10624           1 :       continue L3;
   10625           1 :      }
   10626           1 :      _luaV_arith(i1, i27, i29, i28, 9);
   10627           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10628           1 :      continue L3;
   10629           1 :     }
   10630           1 :    case 20:
   10631           1 :     {
   10632           1 :      i29 = i28 >>> 23;
   10633           1 :      i28 = HEAP32[i25 + (i29 << 4) + 8 >> 2] | 0;
   10634           1 :      if ((i28 | 0) != 0) {
   10635           1 :       if ((i28 | 0) == 1) {
   10636           1 :        i28 = (HEAP32[i25 + (i29 << 4) >> 2] | 0) == 0;
   10637           1 :       } else {
   10638           1 :        i28 = 0;
   10639           1 :       }
   10640           1 :      } else {
   10641           1 :       i28 = 1;
   10642           1 :      }
   10643           1 :      HEAP32[i27 >> 2] = i28 & 1;
   10644           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = 1;
   10645           1 :      continue L3;
   10646           1 :     }
   10647           1 :    case 21:
   10648           1 :     {
   10649           1 :      _luaV_objlen(i1, i27, i25 + (i28 >>> 23 << 4) | 0);
   10650           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10651           1 :      continue L3;
   10652           1 :     }
   10653           1 :    case 22:
   10654           1 :     {
   10655           1 :      i27 = i28 >>> 23;
   10656           1 :      i28 = i28 >>> 14 & 511;
   10657           1 :      HEAP32[i5 >> 2] = i25 + (i28 + 1 << 4);
   10658           1 :      _luaV_concat(i1, 1 - i27 + i28 | 0);
   10659           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10660           1 :      i28 = i25 + (i27 << 4) | 0;
   10661           1 :      i34 = i28;
   10662           1 :      i35 = HEAP32[i34 + 4 >> 2] | 0;
   10663           1 :      i36 = i25 + (i26 << 4) | 0;
   10664           1 :      HEAP32[i36 >> 2] = HEAP32[i34 >> 2];
   10665           1 :      HEAP32[i36 + 4 >> 2] = i35;
   10666           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i27 << 4) + 8 >> 2];
   10667           1 :      if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   10668           1 :       if (!(i26 >>> 0 < i27 >>> 0)) {
   10669           1 :        i28 = i25 + (i26 + 1 << 4) | 0;
   10670           1 :       }
   10671           1 :       HEAP32[i5 >> 2] = i28;
   10672           1 :       _luaC_step(i1);
   10673           1 :       HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
   10674           1 :      }
   10675           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10676           1 :      HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
   10677           1 :      continue L3;
   10678           1 :     }
   10679           1 :    case 25:
   10680           1 :     {
   10681           1 :      i27 = i28 >>> 23;
   10682           1 :      if ((i27 & 256 | 0) == 0) {
   10683           1 :       i27 = i25 + (i27 << 4) | 0;
   10684           1 :      } else {
   10685           1 :       i27 = i23 + ((i27 & 255) << 4) | 0;
   10686           1 :      }
   10687           1 :      i28 = i28 >>> 14;
   10688           1 :      if ((i28 & 256 | 0) == 0) {
   10689           1 :       i25 = i25 + ((i28 & 511) << 4) | 0;
   10690           1 :      } else {
   10691           1 :       i25 = i23 + ((i28 & 255) << 4) | 0;
   10692           1 :      }
   10693           1 :      i36 = (_luaV_lessthan(i1, i27, i25) | 0) == (i26 | 0);
   10694           1 :      i26 = HEAP32[i21 >> 2] | 0;
   10695           1 :      if (i36) {
   10696           1 :       i25 = HEAP32[i26 >> 2] | 0;
   10697           1 :       i27 = i25 >>> 6 & 255;
   10698           1 :       if ((i27 | 0) != 0) {
   10699           1 :        _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0);
   10700           1 :        i26 = HEAP32[i21 >> 2] | 0;
   10701           1 :       }
   10702           1 :       i25 = i26 + ((i25 >>> 14) + -131070 << 2) | 0;
   10703           1 :      } else {
   10704           1 :       i25 = i26 + 4 | 0;
   10705           1 :      }
   10706           1 :      HEAP32[i21 >> 2] = i25;
   10707           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10708           1 :      continue L3;
   10709           1 :     }
   10710           1 :    case 27:
   10711           1 :     {
   10712           1 :      i29 = HEAP32[i25 + (i26 << 4) + 8 >> 2] | 0;
   10713           1 :      i26 = (i29 | 0) == 0;
   10714           1 :      if ((i28 & 8372224 | 0) == 0) {
   10715           1 :       if (!i26) {
   10716           1 :        if (!((i29 | 0) == 1 ? (HEAP32[i27 >> 2] | 0) == 0 : 0)) {
   10717           1 :         i15 = 192;
   10718           1 :        }
   10719           1 :       }
   10720           1 :      } else {
   10721           1 :       if (!i26) {
   10722           1 :        if ((i29 | 0) == 1 ? (HEAP32[i27 >> 2] | 0) == 0 : 0) {
   10723           1 :         i15 = 192;
   10724           1 :        }
   10725           1 :       } else {
   10726           1 :        i15 = 192;
   10727           1 :       }
   10728           1 :      }
   10729           1 :      if ((i15 | 0) == 192) {
   10730           1 :       i15 = 0;
   10731           1 :       HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4;
   10732           1 :       continue L3;
   10733           1 :      }
   10734           1 :      i27 = HEAP32[i21 >> 2] | 0;
   10735           1 :      i26 = HEAP32[i27 >> 2] | 0;
   10736           1 :      i28 = i26 >>> 6 & 255;
   10737           1 :      if ((i28 | 0) != 0) {
   10738           1 :       _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i28 + -1 << 4) | 0);
   10739           1 :       i27 = HEAP32[i21 >> 2] | 0;
   10740           1 :      }
   10741           1 :      HEAP32[i21 >> 2] = i27 + ((i26 >>> 14) + -131070 << 2);
   10742           1 :      continue L3;
   10743           1 :     }
   10744           1 :    case 26:
   10745           1 :     {
   10746           1 :      i27 = i28 >>> 23;
   10747           1 :      if ((i27 & 256 | 0) == 0) {
   10748           1 :       i27 = i25 + (i27 << 4) | 0;
   10749           1 :      } else {
   10750           1 :       i27 = i23 + ((i27 & 255) << 4) | 0;
   10751           1 :      }
   10752           1 :      i28 = i28 >>> 14;
   10753           1 :      if ((i28 & 256 | 0) == 0) {
   10754           1 :       i25 = i25 + ((i28 & 511) << 4) | 0;
   10755           1 :      } else {
   10756           1 :       i25 = i23 + ((i28 & 255) << 4) | 0;
   10757           1 :      }
   10758           1 :      i36 = (_luaV_lessequal(i1, i27, i25) | 0) == (i26 | 0);
   10759           1 :      i26 = HEAP32[i21 >> 2] | 0;
   10760           1 :      if (i36) {
   10761           1 :       i25 = HEAP32[i26 >> 2] | 0;
   10762           1 :       i27 = i25 >>> 6 & 255;
   10763           1 :       if ((i27 | 0) != 0) {
   10764           1 :        _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0);
   10765           1 :        i26 = HEAP32[i21 >> 2] | 0;
   10766           1 :       }
   10767           1 :       i25 = i26 + ((i25 >>> 14) + -131070 << 2) | 0;
   10768           1 :      } else {
   10769           1 :       i25 = i26 + 4 | 0;
   10770           1 :      }
   10771           1 :      HEAP32[i21 >> 2] = i25;
   10772           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10773           1 :      continue L3;
   10774           1 :     }
   10775           1 :    case 28:
   10776           1 :     {
   10777           1 :      i30 = i28 >>> 23;
   10778           1 :      i29 = i25 + (i30 << 4) | 0;
   10779           1 :      i30 = HEAP32[i25 + (i30 << 4) + 8 >> 2] | 0;
   10780           1 :      i31 = (i30 | 0) == 0;
   10781           1 :      if ((i28 & 8372224 | 0) == 0) {
   10782           1 :       if (!i31) {
   10783           1 :        if (!((i30 | 0) == 1 ? (HEAP32[i29 >> 2] | 0) == 0 : 0)) {
   10784           1 :         i15 = 203;
   10785           1 :        }
   10786           1 :       }
   10787           1 :      } else {
   10788           1 :       if (!i31) {
   10789           1 :        if ((i30 | 0) == 1 ? (HEAP32[i29 >> 2] | 0) == 0 : 0) {
   10790           1 :         i15 = 203;
   10791           1 :        }
   10792           1 :       } else {
   10793           1 :        i15 = 203;
   10794           1 :       }
   10795           1 :      }
   10796           1 :      if ((i15 | 0) == 203) {
   10797           1 :       i15 = 0;
   10798           1 :       HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4;
   10799           1 :       continue L3;
   10800           1 :      }
   10801           1 :      i36 = i29;
   10802           1 :      i28 = HEAP32[i36 + 4 >> 2] | 0;
   10803           1 :      HEAP32[i27 >> 2] = HEAP32[i36 >> 2];
   10804           1 :      HEAP32[i27 + 4 >> 2] = i28;
   10805           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = i30;
   10806           1 :      i27 = HEAP32[i21 >> 2] | 0;
   10807           1 :      i26 = HEAP32[i27 >> 2] | 0;
   10808           1 :      i28 = i26 >>> 6 & 255;
   10809           1 :      if ((i28 | 0) != 0) {
   10810           1 :       _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i28 + -1 << 4) | 0);
   10811           1 :       i27 = HEAP32[i21 >> 2] | 0;
   10812           1 :      }
   10813           1 :      HEAP32[i21 >> 2] = i27 + ((i26 >>> 14) + -131070 << 2);
   10814           1 :      continue L3;
   10815           1 :     }
   10816           1 :    case 30:
   10817           1 :     {
   10818           1 :      i28 = i28 >>> 23;
   10819           1 :      if ((i28 | 0) != 0) {
   10820           1 :       HEAP32[i5 >> 2] = i25 + (i26 + i28 << 4);
   10821           1 :      }
   10822           1 :      if ((_luaD_precall(i1, i27, -1) | 0) == 0) {
   10823           1 :       i15 = 218;
   10824           1 :       break L3;
   10825           1 :      }
   10826           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10827           1 :      continue L3;
   10828           1 :     }
   10829           1 :    case 29:
   10830           1 :     {
   10831           1 :      i29 = i28 >>> 23;
   10832           1 :      i28 = i28 >>> 14 & 511;
   10833           1 :      if ((i29 | 0) != 0) {
   10834           1 :       HEAP32[i5 >> 2] = i25 + (i26 + i29 << 4);
   10835           1 :      }
   10836           1 :      if ((_luaD_precall(i1, i27, i28 + -1 | 0) | 0) == 0) {
   10837           1 :       i15 = 213;
   10838           1 :       break L3;
   10839           1 :      }
   10840           1 :      if ((i28 | 0) != 0) {
   10841           1 :       HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
   10842           1 :      }
   10843           1 :      i25 = HEAP32[i20 >> 2] | 0;
   10844           1 :      continue L3;
   10845           1 :     }
   10846           1 :    case 32:
   10847           1 :     {
   10848           1 :      d39 = +HEAPF64[i25 + (i26 + 2 << 4) >> 3];
   10849           1 :      d38 = d39 + +HEAPF64[i27 >> 3];
   10850           1 :      d37 = +HEAPF64[i25 + (i26 + 1 << 4) >> 3];
   10851           1 :      if (d39 > 0.0) {
   10852           1 :       if (!(d38 <= d37)) {
   10853           1 :        continue L3;
   10854           1 :       }
   10855           1 :      } else {
   10856           1 :       if (!(d37 <= d38)) {
   10857           1 :        continue L3;
   10858           1 :       }
   10859           1 :      }
   10860           1 :      HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
   10861           1 :      HEAPF64[i27 >> 3] = d38;
   10862           1 :      HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
   10863           1 :      i36 = i26 + 3 | 0;
   10864           1 :      HEAPF64[i25 + (i36 << 4) >> 3] = d38;
   10865           1 :      HEAP32[i25 + (i36 << 4) + 8 >> 2] = 3;
   10866           1 :      continue L3;
   10867           1 :     }
   10868           1 :    case 33:
   10869           1 :     {
   10870           1 :      i32 = i26 + 1 | 0;
   10871           1 :      i30 = i25 + (i32 << 4) | 0;
   10872           1 :      i31 = i26 + 2 | 0;
   10873           1 :      i29 = i25 + (i31 << 4) | 0;
   10874           1 :      i26 = i25 + (i26 << 4) + 8 | 0;
   10875           1 :      i33 = HEAP32[i26 >> 2] | 0;
   10876           1 :      if ((i33 | 0) != 3) {
   10877           1 :       if ((i33 & 15 | 0) != 4) {
   10878           1 :        i15 = 239;
   10879           1 :        break L1;
   10880           1 :       }
   10881           1 :       i36 = HEAP32[i27 >> 2] | 0;
   10882           1 :       if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i8) | 0) == 0) {
   10883           1 :        i15 = 239;
   10884           1 :        break L1;
   10885           1 :       }
   10886           1 :       HEAPF64[i27 >> 3] = +HEAPF64[i8 >> 3];
   10887           1 :       HEAP32[i26 >> 2] = 3;
   10888           1 :       if ((i27 | 0) == 0) {
   10889           1 :        i15 = 239;
   10890           1 :        break L1;
   10891           1 :       }
   10892           1 :      }
   10893           1 :      i33 = i25 + (i32 << 4) + 8 | 0;
   10894           1 :      i32 = HEAP32[i33 >> 2] | 0;
   10895           1 :      if ((i32 | 0) != 3) {
   10896           1 :       if ((i32 & 15 | 0) != 4) {
   10897           1 :        i15 = 244;
   10898           1 :        break L1;
   10899           1 :       }
   10900           1 :       i36 = HEAP32[i30 >> 2] | 0;
   10901           1 :       if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i9) | 0) == 0) {
   10902           1 :        i15 = 244;
   10903           1 :        break L1;
   10904           1 :       }
   10905           1 :       HEAPF64[i30 >> 3] = +HEAPF64[i9 >> 3];
   10906           1 :       HEAP32[i33 >> 2] = 3;
   10907           1 :      }
   10908           1 :      i31 = i25 + (i31 << 4) + 8 | 0;
   10909           1 :      i30 = HEAP32[i31 >> 2] | 0;
   10910           1 :      if ((i30 | 0) != 3) {
   10911           1 :       if ((i30 & 15 | 0) != 4) {
   10912           1 :        i15 = 249;
   10913           1 :        break L1;
   10914           1 :       }
   10915           1 :       i36 = HEAP32[i29 >> 2] | 0;
   10916           1 :       if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i10) | 0) == 0) {
   10917           1 :        i15 = 249;
   10918           1 :        break L1;
   10919           1 :       }
   10920           1 :       HEAPF64[i29 >> 3] = +HEAPF64[i10 >> 3];
   10921           1 :       HEAP32[i31 >> 2] = 3;
   10922           1 :      }
   10923           1 :      HEAPF64[i27 >> 3] = +HEAPF64[i27 >> 3] - +HEAPF64[i29 >> 3];
   10924           1 :      HEAP32[i26 >> 2] = 3;
   10925           1 :      HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
   10926           1 :      continue L3;
   10927           1 :     }
   10928           1 :    case 31:
   10929           1 :     {
   10930           1 :      i15 = 223;
   10931           1 :      break L3;
   10932           1 :     }
   10933           1 :    case 34:
   10934           1 :     {
   10935           1 :      i35 = i26 + 3 | 0;
   10936           1 :      i36 = i25 + (i35 << 4) | 0;
   10937           1 :      i33 = i26 + 2 | 0;
   10938           1 :      i34 = i26 + 5 | 0;
   10939           1 :      i32 = i25 + (i33 << 4) | 0;
   10940           1 :      i31 = HEAP32[i32 + 4 >> 2] | 0;
   10941           1 :      i30 = i25 + (i34 << 4) | 0;
   10942           1 :      HEAP32[i30 >> 2] = HEAP32[i32 >> 2];
   10943           1 :      HEAP32[i30 + 4 >> 2] = i31;
   10944           1 :      HEAP32[i25 + (i34 << 4) + 8 >> 2] = HEAP32[i25 + (i33 << 4) + 8 >> 2];
   10945           1 :      i34 = i26 + 1 | 0;
   10946           1 :      i33 = i26 + 4 | 0;
   10947           1 :      i30 = i25 + (i34 << 4) | 0;
   10948           1 :      i31 = HEAP32[i30 + 4 >> 2] | 0;
   10949           1 :      i32 = i25 + (i33 << 4) | 0;
   10950           1 :      HEAP32[i32 >> 2] = HEAP32[i30 >> 2];
   10951           1 :      HEAP32[i32 + 4 >> 2] = i31;
   10952           1 :      HEAP32[i25 + (i33 << 4) + 8 >> 2] = HEAP32[i25 + (i34 << 4) + 8 >> 2];
   10953           1 :      i33 = i27;
   10954           1 :      i34 = HEAP32[i33 + 4 >> 2] | 0;
   10955           1 :      i27 = i36;
   10956           1 :      HEAP32[i27 >> 2] = HEAP32[i33 >> 2];
   10957           1 :      HEAP32[i27 + 4 >> 2] = i34;
   10958           1 :      HEAP32[i25 + (i35 << 4) + 8 >> 2] = HEAP32[i25 + (i26 << 4) + 8 >> 2];
   10959           1 :      HEAP32[i5 >> 2] = i25 + (i26 + 6 << 4);
   10960           1 :      _luaD_call(i1, i36, i28 >>> 14 & 511, 1);
   10961           1 :      i36 = HEAP32[i20 >> 2] | 0;
   10962           1 :      HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
   10963           1 :      i27 = HEAP32[i21 >> 2] | 0;
   10964           1 :      HEAP32[i21 >> 2] = i27 + 4;
   10965           1 :      i27 = HEAP32[i27 >> 2] | 0;
   10966           1 :      i25 = i36;
   10967           1 :      i28 = i27;
   10968           1 :      i27 = i36 + ((i27 >>> 6 & 255) << 4) | 0;
   10969           1 :      break;
   10970           1 :     }
   10971           1 :    case 35:
   10972           1 :     {
   10973           1 :      break;
   10974           1 :     }
   10975           1 :    case 36:
   10976           1 :     {
   10977           1 :      i29 = i28 >>> 23;
   10978           1 :      i28 = i28 >>> 14 & 511;
   10979           1 :      if ((i29 | 0) == 0) {
   10980           1 :       i29 = ((HEAP32[i5 >> 2] | 0) - i27 >> 4) + -1 | 0;
   10981           1 :      }
   10982           1 :      if ((i28 | 0) == 0) {
   10983           1 :       i28 = HEAP32[i21 >> 2] | 0;
   10984           1 :       HEAP32[i21 >> 2] = i28 + 4;
   10985           1 :       i28 = (HEAP32[i28 >> 2] | 0) >>> 6;
   10986           1 :      }
   10987           1 :      i27 = HEAP32[i27 >> 2] | 0;
   10988           1 :      i30 = i29 + -50 + (i28 * 50 | 0) | 0;
   10989           1 :      if ((i30 | 0) > (HEAP32[i27 + 28 >> 2] | 0)) {
   10990           1 :       _luaH_resizearray(i1, i27, i30);
   10991           1 :      }
   10992           1 :      if ((i29 | 0) > 0) {
   10993           1 :       i28 = i27 + 5 | 0;
   10994           1 :       while (1) {
   10995           1 :        i36 = i29 + i26 | 0;
   10996           1 :        i32 = i25 + (i36 << 4) | 0;
   10997           1 :        i31 = i30 + -1 | 0;
   10998           1 :        _luaH_setint(i1, i27, i30, i32);
   10999           1 :        if (((HEAP32[i25 + (i36 << 4) + 8 >> 2] & 64 | 0) != 0 ? !((HEAP8[(HEAP32[i32 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) ? !((HEAP8[i28] & 4) == 0) : 0) {
   11000           1 :         _luaC_barrierback_(i1, i27);
   11001           1 :        }
   11002           1 :        i29 = i29 + -1 | 0;
   11003           1 :        if ((i29 | 0) > 0) {
   11004           1 :         i30 = i31;
   11005           1 :        } else {
   11006           1 :         break;
   11007           1 :        }
   11008           1 :       }
   11009           1 :      }
   11010           1 :      HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
   11011           1 :      continue L3;
   11012           1 :     }
   11013           1 :    case 37:
   11014           1 :     {
   11015           1 :      i29 = HEAP32[(HEAP32[(HEAP32[i18 >> 2] | 0) + 16 >> 2] | 0) + (i28 >>> 14 << 2) >> 2] | 0;
   11016           1 :      i28 = i29 + 32 | 0;
   11017           1 :      i33 = HEAP32[i28 >> 2] | 0;
   11018           1 :      i30 = HEAP32[i29 + 40 >> 2] | 0;
   11019           1 :      i31 = HEAP32[i29 + 28 >> 2] | 0;
   11020           1 :      L323 : do {
   11021           1 :       if ((i33 | 0) == 0) {
   11022           1 :        i15 = 276;
   11023           1 :       } else {
   11024           1 :        if ((i30 | 0) > 0) {
   11025           1 :         i34 = i33 + 16 | 0;
   11026           1 :         i32 = 0;
   11027           1 :         while (1) {
   11028           1 :          i35 = HEAPU8[i31 + (i32 << 3) + 5 | 0] | 0;
   11029           1 :          if ((HEAP8[i31 + (i32 << 3) + 4 | 0] | 0) == 0) {
   11030           1 :           i36 = HEAP32[(HEAP32[i22 + (i35 << 2) >> 2] | 0) + 8 >> 2] | 0;
   11031           1 :          } else {
   11032           1 :           i36 = i25 + (i35 << 4) | 0;
   11033           1 :          }
   11034           1 :          i35 = i32 + 1 | 0;
   11035           1 :          if ((HEAP32[(HEAP32[i34 + (i32 << 2) >> 2] | 0) + 8 >> 2] | 0) != (i36 | 0)) {
   11036           1 :           i15 = 276;
   11037           1 :           break L323;
   11038           1 :          }
   11039           1 :          if ((i35 | 0) < (i30 | 0)) {
   11040           1 :           i32 = i35;
   11041           1 :          } else {
   11042           1 :           break;
   11043           1 :          }
   11044           1 :         }
   11045           1 :        }
   11046           1 :        HEAP32[i27 >> 2] = i33;
   11047           1 :        HEAP32[i25 + (i26 << 4) + 8 >> 2] = 70;
   11048           1 :       }
   11049           1 :      } while (0);
   11050           1 :      if ((i15 | 0) == 276) {
   11051           1 :       i15 = 0;
   11052           1 :       i32 = _luaF_newLclosure(i1, i30) | 0;
   11053           1 :       HEAP32[i32 + 12 >> 2] = i29;
   11054           1 :       HEAP32[i27 >> 2] = i32;
   11055           1 :       HEAP32[i25 + (i26 << 4) + 8 >> 2] = 70;
   11056           1 :       if ((i30 | 0) > 0) {
   11057           1 :        i27 = i32 + 16 | 0;
   11058           1 :        i34 = 0;
   11059           1 :        do {
   11060           1 :         i33 = HEAPU8[i31 + (i34 << 3) + 5 | 0] | 0;
   11061           1 :         if ((HEAP8[i31 + (i34 << 3) + 4 | 0] | 0) == 0) {
   11062           1 :          HEAP32[i27 + (i34 << 2) >> 2] = HEAP32[i22 + (i33 << 2) >> 2];
   11063           1 :         } else {
   11064           1 :          HEAP32[i27 + (i34 << 2) >> 2] = _luaF_findupval(i1, i25 + (i33 << 4) | 0) | 0;
   11065           1 :         }
   11066           1 :         i34 = i34 + 1 | 0;
   11067           1 :        } while ((i34 | 0) != (i30 | 0));
   11068           1 :       }
   11069           1 :       if (!((HEAP8[i29 + 5 | 0] & 4) == 0)) {
   11070           1 :        _luaC_barrierproto_(i1, i29, i32);
   11071           1 :       }
   11072           1 :       HEAP32[i28 >> 2] = i32;
   11073           1 :      }
   11074           1 :      if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   11075           1 :       HEAP32[i5 >> 2] = i25 + (i26 + 1 << 4);
   11076           1 :       _luaC_step(i1);
   11077           1 :       HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
   11078           1 :      }
   11079           1 :      i25 = HEAP32[i20 >> 2] | 0;
   11080           1 :      continue L3;
   11081           1 :     }
   11082           1 :    case 38:
   11083           1 :     {
   11084           1 :      i36 = i28 >>> 23;
   11085           1 :      i29 = i36 + -1 | 0;
   11086           1 :      i30 = (i25 - (HEAP32[i19 >> 2] | 0) >> 4) - (HEAPU8[(HEAP32[i18 >> 2] | 0) + 76 | 0] | 0) | 0;
   11087           1 :      i28 = i30 + -1 | 0;
   11088           1 :      if ((i36 | 0) == 0) {
   11089           1 :       if (((HEAP32[i11 >> 2] | 0) - (HEAP32[i5 >> 2] | 0) >> 4 | 0) <= (i28 | 0)) {
   11090           1 :        _luaD_growstack(i1, i28);
   11091           1 :       }
   11092           1 :       i27 = HEAP32[i20 >> 2] | 0;
   11093           1 :       HEAP32[i5 >> 2] = i27 + (i28 + i26 << 4);
   11094           1 :       i29 = i28;
   11095           1 :       i25 = i27;
   11096           1 :       i27 = i27 + (i26 << 4) | 0;
   11097           1 :      }
   11098           1 :      if ((i29 | 0) <= 0) {
   11099           1 :       continue L3;
   11100           1 :      }
   11101           1 :      i26 = 1 - i30 | 0;
   11102           1 :      i30 = 0;
   11103           1 :      while (1) {
   11104           1 :       if ((i30 | 0) < (i28 | 0)) {
   11105           1 :        i36 = i30 + i26 | 0;
   11106           1 :        i33 = i25 + (i36 << 4) | 0;
   11107           1 :        i34 = HEAP32[i33 + 4 >> 2] | 0;
   11108           1 :        i35 = i27 + (i30 << 4) | 0;
   11109           1 :        HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
   11110           1 :        HEAP32[i35 + 4 >> 2] = i34;
   11111           1 :        HEAP32[i27 + (i30 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2];
   11112           1 :       } else {
   11113           1 :        HEAP32[i27 + (i30 << 4) + 8 >> 2] = 0;
   11114           1 :       }
   11115           1 :       i30 = i30 + 1 | 0;
   11116           1 :       if ((i30 | 0) == (i29 | 0)) {
   11117           1 :        continue L3;
   11118           1 :       }
   11119           1 :      }
   11120           1 :     }
   11121           1 :    default:
   11122           1 :     {
   11123           1 :      continue L3;
   11124           1 :     }
   11125           1 :    }
   11126           1 :    i26 = HEAP32[i27 + 24 >> 2] | 0;
   11127           1 :    if ((i26 | 0) == 0) {
   11128           1 :     continue;
   11129           1 :    }
   11130           1 :    i34 = i27 + 16 | 0;
   11131           1 :    i35 = HEAP32[i34 + 4 >> 2] | 0;
   11132           1 :    i36 = i27;
   11133           1 :    HEAP32[i36 >> 2] = HEAP32[i34 >> 2];
   11134           1 :    HEAP32[i36 + 4 >> 2] = i35;
   11135           1 :    HEAP32[i27 + 8 >> 2] = i26;
   11136           1 :    HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
   11137           1 :   }
   11138           1 :   if ((i15 | 0) == 213) {
   11139           1 :    i15 = 0;
   11140           1 :    i19 = HEAP32[i3 >> 2] | 0;
   11141           1 :    i36 = i19 + 18 | 0;
   11142           1 :    HEAP8[i36] = HEAPU8[i36] | 4;
   11143           1 :    continue;
   11144           1 :   } else if ((i15 | 0) == 218) {
   11145           1 :    i15 = 0;
   11146           1 :    i22 = HEAP32[i3 >> 2] | 0;
   11147           1 :    i19 = HEAP32[i22 + 8 >> 2] | 0;
   11148           1 :    i23 = HEAP32[i22 >> 2] | 0;
   11149           1 :    i24 = HEAP32[i19 >> 2] | 0;
   11150           1 :    i20 = i22 + 24 | 0;
   11151           1 :    i21 = (HEAP32[i20 >> 2] | 0) + (HEAPU8[(HEAP32[(HEAP32[i23 >> 2] | 0) + 12 >> 2] | 0) + 76 | 0] << 4) | 0;
   11152           1 :    if ((HEAP32[(HEAP32[i18 >> 2] | 0) + 56 >> 2] | 0) > 0) {
   11153           1 :     _luaF_close(i1, HEAP32[i19 + 24 >> 2] | 0);
   11154           1 :    }
   11155           1 :    if (i23 >>> 0 < i21 >>> 0) {
   11156           1 :     i25 = i23;
   11157           1 :     i18 = 0;
   11158           1 :     do {
   11159           1 :      i34 = i25;
   11160           1 :      i35 = HEAP32[i34 + 4 >> 2] | 0;
   11161           1 :      i36 = i24 + (i18 << 4) | 0;
   11162           1 :      HEAP32[i36 >> 2] = HEAP32[i34 >> 2];
   11163           1 :      HEAP32[i36 + 4 >> 2] = i35;
   11164           1 :      HEAP32[i24 + (i18 << 4) + 8 >> 2] = HEAP32[i23 + (i18 << 4) + 8 >> 2];
   11165           1 :      i18 = i18 + 1 | 0;
   11166           1 :      i25 = i23 + (i18 << 4) | 0;
   11167           1 :     } while (i25 >>> 0 < i21 >>> 0);
   11168           1 :    }
   11169           1 :    i36 = i23;
   11170           1 :    HEAP32[i19 + 24 >> 2] = i24 + ((HEAP32[i20 >> 2] | 0) - i36 >> 4 << 4);
   11171           1 :    i36 = i24 + ((HEAP32[i5 >> 2] | 0) - i36 >> 4 << 4) | 0;
   11172           1 :    HEAP32[i5 >> 2] = i36;
   11173           1 :    HEAP32[i19 + 4 >> 2] = i36;
   11174           1 :    HEAP32[i19 + 28 >> 2] = HEAP32[i22 + 28 >> 2];
   11175           1 :    i36 = i19 + 18 | 0;
   11176           1 :    HEAP8[i36] = HEAPU8[i36] | 64;
   11177           1 :    HEAP32[i3 >> 2] = i19;
   11178           1 :    continue;
   11179           1 :   } else if ((i15 | 0) == 223) {
   11180           1 :    i15 = 0;
   11181           1 :    i20 = i28 >>> 23;
   11182           1 :    if ((i20 | 0) != 0) {
   11183           1 :     HEAP32[i5 >> 2] = i25 + (i20 + -1 + i26 << 4);
   11184           1 :    }
   11185           1 :    if ((HEAP32[(HEAP32[i18 >> 2] | 0) + 56 >> 2] | 0) > 0) {
   11186           1 :     _luaF_close(i1, i25);
   11187           1 :    }
   11188           1 :    i18 = _luaD_poscall(i1, i27) | 0;
   11189           1 :    if ((HEAP8[i19 + 18 | 0] & 4) == 0) {
   11190           1 :     i15 = 228;
   11191           1 :     break;
   11192           1 :    }
   11193           1 :    i19 = HEAP32[i3 >> 2] | 0;
   11194           1 :    if ((i18 | 0) == 0) {
   11195           1 :     continue;
   11196           1 :    }
   11197           1 :    HEAP32[i5 >> 2] = HEAP32[i19 + 4 >> 2];
   11198           1 :    continue;
   11199           1 :   }
   11200           1 :  }
   11201           1 :  if ((i15 | 0) == 23) {
   11202           1 :   if (!i27) {
   11203           1 :    i36 = HEAP32[i29 >> 2] | 0;
   11204           1 :    i36 = i36 + -4 | 0;
   11205           1 :    HEAP32[i29 >> 2] = i36;
   11206           1 :    i36 = HEAP8[i26] | 0;
   11207           1 :    i36 = i36 & 255;
   11208           1 :    i36 = i36 | 128;
   11209           1 :    i36 = i36 & 255;
   11210           1 :    HEAP8[i26] = i36;
   11211           1 :    i36 = HEAP32[i5 >> 2] | 0;
   11212           1 :    i36 = i36 + -16 | 0;
   11213           1 :    HEAP32[i25 >> 2] = i36;
   11214           1 :    _luaD_throw(i1, 1);
   11215           1 :   }
   11216           1 :   HEAP32[i17 >> 2] = 1;
   11217           1 :   i36 = HEAP32[i29 >> 2] | 0;
   11218           1 :   i36 = i36 + -4 | 0;
   11219           1 :   HEAP32[i29 >> 2] = i36;
   11220           1 :   i36 = HEAP8[i26] | 0;
   11221           1 :   i36 = i36 & 255;
   11222           1 :   i36 = i36 | 128;
   11223           1 :   i36 = i36 & 255;
   11224           1 :   HEAP8[i26] = i36;
   11225           1 :   i36 = HEAP32[i5 >> 2] | 0;
   11226           1 :   i36 = i36 + -16 | 0;
   11227           1 :   HEAP32[i25 >> 2] = i36;
   11228           1 :   _luaD_throw(i1, 1);
   11229           1 :  } else if ((i15 | 0) == 228) {
   11230           1 :   STACKTOP = i12;
   11231           1 :   return;
   11232           1 :  } else if ((i15 | 0) == 239) {
   11233           1 :   _luaG_runerror(i1, 9040, i13);
   11234           1 :  } else if ((i15 | 0) == 244) {
   11235           1 :   _luaG_runerror(i1, 9080, i13);
   11236           1 :  } else if ((i15 | 0) == 249) {
   11237           1 :   _luaG_runerror(i1, 9112, i13);
   11238           1 :  }
   11239           1 : }
   11240          35 : function ___floatscan(i8, i2, i11) {
   11241          35 :  i8 = i8 | 0;
   11242          35 :  i2 = i2 | 0;
   11243          35 :  i11 = i11 | 0;
   11244          35 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0;
   11245          35 :  i1 = STACKTOP;
   11246          35 :  STACKTOP = STACKTOP + 512 | 0;
   11247          35 :  i5 = i1;
   11248          35 :  if ((i2 | 0) == 1) {
   11249          35 :   i2 = 53;
   11250          35 :   i3 = -1074;
   11251          35 :  } else if ((i2 | 0) == 2) {
   11252          35 :   i2 = 53;
   11253          35 :   i3 = -1074;
   11254          35 :  } else if ((i2 | 0) == 0) {
   11255          35 :   i2 = 24;
   11256          35 :   i3 = -149;
   11257          35 :  } else {
   11258          35 :   d31 = 0.0;
   11259          35 :   STACKTOP = i1;
   11260          35 :   return +d31;
   11261          35 :  }
   11262          35 :  i9 = i8 + 4 | 0;
   11263          35 :  i10 = i8 + 100 | 0;
   11264          35 :  do {
   11265          35 :   i4 = HEAP32[i9 >> 2] | 0;
   11266          35 :   if (i4 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11267          35 :    HEAP32[i9 >> 2] = i4 + 1;
   11268          35 :    i21 = HEAPU8[i4] | 0;
   11269          35 :   } else {
   11270          35 :    i21 = ___shgetc(i8) | 0;
   11271          35 :   }
   11272          35 :  } while ((_isspace(i21 | 0) | 0) != 0);
   11273          35 :  do {
   11274          35 :   if ((i21 | 0) == 43 | (i21 | 0) == 45) {
   11275          35 :    i4 = 1 - (((i21 | 0) == 45) << 1) | 0;
   11276          35 :    i7 = HEAP32[i9 >> 2] | 0;
   11277          35 :    if (i7 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11278          35 :     HEAP32[i9 >> 2] = i7 + 1;
   11279          35 :     i21 = HEAPU8[i7] | 0;
   11280          35 :     break;
   11281          35 :    } else {
   11282          35 :     i21 = ___shgetc(i8) | 0;
   11283          35 :     break;
   11284          35 :    }
   11285          35 :   } else {
   11286          35 :    i4 = 1;
   11287          35 :   }
   11288          35 :  } while (0);
   11289          35 :  i7 = 0;
   11290          35 :  do {
   11291          35 :   if ((i21 | 32 | 0) != (HEAP8[13408 + i7 | 0] | 0)) {
   11292          35 :    break;
   11293          35 :   }
   11294          35 :   do {
   11295          35 :    if (i7 >>> 0 < 7) {
   11296          35 :     i12 = HEAP32[i9 >> 2] | 0;
   11297          35 :     if (i12 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11298          35 :      HEAP32[i9 >> 2] = i12 + 1;
   11299          35 :      i21 = HEAPU8[i12] | 0;
   11300          35 :      break;
   11301          35 :     } else {
   11302          35 :      i21 = ___shgetc(i8) | 0;
   11303          35 :      break;
   11304          35 :     }
   11305          35 :    }
   11306          35 :   } while (0);
   11307          35 :   i7 = i7 + 1 | 0;
   11308          35 :  } while (i7 >>> 0 < 8);
   11309          35 :  do {
   11310          35 :   if ((i7 | 0) == 3) {
   11311          35 :    i13 = 23;
   11312          35 :   } else if ((i7 | 0) != 8) {
   11313          35 :    i12 = (i11 | 0) == 0;
   11314          35 :    if (!(i7 >>> 0 < 4 | i12)) {
   11315          35 :     if ((i7 | 0) == 8) {
   11316          35 :      break;
   11317          35 :     } else {
   11318          35 :      i13 = 23;
   11319          35 :      break;
   11320          35 :     }
   11321          35 :    }
   11322          35 :    L34 : do {
   11323          35 :     if ((i7 | 0) == 0) {
   11324          35 :      i7 = 0;
   11325          35 :      do {
   11326          35 :       if ((i21 | 32 | 0) != (HEAP8[13424 + i7 | 0] | 0)) {
   11327          35 :        break L34;
   11328          35 :       }
   11329          35 :       do {
   11330          35 :        if (i7 >>> 0 < 2) {
   11331          35 :         i15 = HEAP32[i9 >> 2] | 0;
   11332          35 :         if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11333          35 :          HEAP32[i9 >> 2] = i15 + 1;
   11334          35 :          i21 = HEAPU8[i15] | 0;
   11335          35 :          break;
   11336          35 :         } else {
   11337          35 :          i21 = ___shgetc(i8) | 0;
   11338          35 :          break;
   11339          35 :         }
   11340          35 :        }
   11341          35 :       } while (0);
   11342          35 :       i7 = i7 + 1 | 0;
   11343          35 :      } while (i7 >>> 0 < 3);
   11344          35 :     }
   11345          35 :    } while (0);
   11346          35 :    if ((i7 | 0) == 0) {
   11347          35 :     do {
   11348          35 :      if ((i21 | 0) == 48) {
   11349          35 :       i7 = HEAP32[i9 >> 2] | 0;
   11350          35 :       if (i7 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11351          35 :        HEAP32[i9 >> 2] = i7 + 1;
   11352          35 :        i7 = HEAPU8[i7] | 0;
   11353          35 :       } else {
   11354          35 :        i7 = ___shgetc(i8) | 0;
   11355          35 :       }
   11356          35 :       if ((i7 | 32 | 0) != 120) {
   11357          35 :        if ((HEAP32[i10 >> 2] | 0) == 0) {
   11358          35 :         i21 = 48;
   11359          35 :         break;
   11360          35 :        }
   11361          35 :        HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   11362          35 :        i21 = 48;
   11363          35 :        break;
   11364          35 :       }
   11365          35 :       i5 = HEAP32[i9 >> 2] | 0;
   11366          35 :       if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11367          35 :        HEAP32[i9 >> 2] = i5 + 1;
   11368          35 :        i21 = HEAPU8[i5] | 0;
   11369          35 :        i19 = 0;
   11370          35 :       } else {
   11371          35 :        i21 = ___shgetc(i8) | 0;
   11372          35 :        i19 = 0;
   11373          35 :       }
   11374          35 :       while (1) {
   11375          35 :        if ((i21 | 0) == 46) {
   11376          35 :         i13 = 70;
   11377          35 :         break;
   11378          35 :        } else if ((i21 | 0) != 48) {
   11379          35 :         i5 = 0;
   11380          35 :         i7 = 0;
   11381          35 :         i15 = 0;
   11382          35 :         i16 = 0;
   11383          35 :         i18 = 0;
   11384          35 :         i20 = 0;
   11385          35 :         d28 = 1.0;
   11386          35 :         i17 = 0;
   11387          35 :         d14 = 0.0;
   11388          35 :         break;
   11389          35 :        }
   11390          35 :        i5 = HEAP32[i9 >> 2] | 0;
   11391          35 :        if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11392          35 :         HEAP32[i9 >> 2] = i5 + 1;
   11393          35 :         i21 = HEAPU8[i5] | 0;
   11394          35 :         i19 = 1;
   11395          35 :         continue;
   11396          35 :        } else {
   11397          35 :         i21 = ___shgetc(i8) | 0;
   11398          35 :         i19 = 1;
   11399          35 :         continue;
   11400          35 :        }
   11401          35 :       }
   11402          35 :       L66 : do {
   11403          35 :        if ((i13 | 0) == 70) {
   11404          35 :         i5 = HEAP32[i9 >> 2] | 0;
   11405          35 :         if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11406          35 :          HEAP32[i9 >> 2] = i5 + 1;
   11407          35 :          i21 = HEAPU8[i5] | 0;
   11408          35 :         } else {
   11409          35 :          i21 = ___shgetc(i8) | 0;
   11410          35 :         }
   11411          35 :         if ((i21 | 0) == 48) {
   11412          35 :          i15 = -1;
   11413          35 :          i16 = -1;
   11414          35 :          while (1) {
   11415          35 :           i5 = HEAP32[i9 >> 2] | 0;
   11416          35 :           if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11417          35 :            HEAP32[i9 >> 2] = i5 + 1;
   11418          35 :            i21 = HEAPU8[i5] | 0;
   11419          35 :           } else {
   11420          35 :            i21 = ___shgetc(i8) | 0;
   11421          35 :           }
   11422          35 :           if ((i21 | 0) != 48) {
   11423          35 :            i5 = 0;
   11424          35 :            i7 = 0;
   11425          35 :            i19 = 1;
   11426          35 :            i18 = 1;
   11427          35 :            i20 = 0;
   11428          35 :            d28 = 1.0;
   11429          35 :            i17 = 0;
   11430          35 :            d14 = 0.0;
   11431          35 :            break L66;
   11432          35 :           }
   11433          35 :           i29 = _i64Add(i15 | 0, i16 | 0, -1, -1) | 0;
   11434          35 :           i15 = i29;
   11435          35 :           i16 = tempRet0;
   11436          35 :          }
   11437          35 :         } else {
   11438          35 :          i5 = 0;
   11439          35 :          i7 = 0;
   11440          35 :          i15 = 0;
   11441          35 :          i16 = 0;
   11442          35 :          i18 = 1;
   11443          35 :          i20 = 0;
   11444          35 :          d28 = 1.0;
   11445          35 :          i17 = 0;
   11446          35 :          d14 = 0.0;
   11447          35 :         }
   11448          35 :        }
   11449          35 :       } while (0);
   11450          35 :       L79 : while (1) {
   11451          35 :        i24 = i21 + -48 | 0;
   11452          35 :        do {
   11453          35 :         if (!(i24 >>> 0 < 10)) {
   11454          35 :          i23 = i21 | 32;
   11455          35 :          i22 = (i21 | 0) == 46;
   11456          35 :          if (!((i23 + -97 | 0) >>> 0 < 6 | i22)) {
   11457          35 :           break L79;
   11458          35 :          }
   11459          35 :          if (i22) {
   11460          35 :           if ((i18 | 0) == 0) {
   11461          35 :            i15 = i7;
   11462          35 :            i16 = i5;
   11463          35 :            i18 = 1;
   11464          35 :            break;
   11465          35 :           } else {
   11466          35 :            i21 = 46;
   11467          35 :            break L79;
   11468          35 :           }
   11469          35 :          } else {
   11470          35 :           i24 = (i21 | 0) > 57 ? i23 + -87 | 0 : i24;
   11471          35 :           i13 = 84;
   11472          35 :           break;
   11473          35 :          }
   11474          35 :         } else {
   11475          35 :          i13 = 84;
   11476          35 :         }
   11477          35 :        } while (0);
   11478          35 :        if ((i13 | 0) == 84) {
   11479          35 :         i13 = 0;
   11480          35 :         do {
   11481          35 :          if (!((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8)) {
   11482          35 :           if ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 14) {
   11483          35 :            d31 = d28 * .0625;
   11484          35 :            d30 = d31;
   11485          35 :            d14 = d14 + d31 * +(i24 | 0);
   11486          35 :            break;
   11487          35 :           }
   11488          35 :           if ((i24 | 0) != 0 & (i20 | 0) == 0) {
   11489          35 :            i20 = 1;
   11490          35 :            d30 = d28;
   11491          35 :            d14 = d14 + d28 * .5;
   11492          35 :           } else {
   11493          35 :            d30 = d28;
   11494          35 :           }
   11495          35 :          } else {
   11496          35 :           d30 = d28;
   11497          35 :           i17 = i24 + (i17 << 4) | 0;
   11498          35 :          }
   11499          35 :         } while (0);
   11500          35 :         i7 = _i64Add(i7 | 0, i5 | 0, 1, 0) | 0;
   11501          35 :         i5 = tempRet0;
   11502          35 :         i19 = 1;
   11503          35 :         d28 = d30;
   11504          35 :        }
   11505          35 :        i21 = HEAP32[i9 >> 2] | 0;
   11506          35 :        if (i21 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11507          35 :         HEAP32[i9 >> 2] = i21 + 1;
   11508          35 :         i21 = HEAPU8[i21] | 0;
   11509          35 :         continue;
   11510          35 :        } else {
   11511          35 :         i21 = ___shgetc(i8) | 0;
   11512          35 :         continue;
   11513          35 :        }
   11514          35 :       }
   11515          35 :       if ((i19 | 0) == 0) {
   11516          35 :        i2 = (HEAP32[i10 >> 2] | 0) == 0;
   11517          35 :        if (!i2) {
   11518          35 :         HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   11519          35 :        }
   11520          35 :        if (!i12) {
   11521          35 :         if (!i2 ? (i6 = HEAP32[i9 >> 2] | 0, HEAP32[i9 >> 2] = i6 + -1, (i18 | 0) != 0) : 0) {
   11522          35 :          HEAP32[i9 >> 2] = i6 + -2;
   11523          35 :         }
   11524          35 :        } else {
   11525          35 :         ___shlim(i8, 0);
   11526          35 :        }
   11527          35 :        d31 = +(i4 | 0) * 0.0;
   11528          35 :        STACKTOP = i1;
   11529          35 :        return +d31;
   11530          35 :       }
   11531          35 :       i13 = (i18 | 0) == 0;
   11532          35 :       i6 = i13 ? i7 : i15;
   11533          35 :       i13 = i13 ? i5 : i16;
   11534          35 :       if ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8) {
   11535          35 :        do {
   11536          35 :         i17 = i17 << 4;
   11537          35 :         i7 = _i64Add(i7 | 0, i5 | 0, 1, 0) | 0;
   11538          35 :         i5 = tempRet0;
   11539          35 :        } while ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8);
   11540          35 :       }
   11541          35 :       do {
   11542          35 :        if ((i21 | 32 | 0) == 112) {
   11543          35 :         i7 = _scanexp(i8, i11) | 0;
   11544          35 :         i5 = tempRet0;
   11545          35 :         if ((i7 | 0) == 0 & (i5 | 0) == -2147483648) {
   11546          35 :          if (i12) {
   11547          35 :           ___shlim(i8, 0);
   11548          35 :           d31 = 0.0;
   11549          35 :           STACKTOP = i1;
   11550          35 :           return +d31;
   11551          35 :          } else {
   11552          35 :           if ((HEAP32[i10 >> 2] | 0) == 0) {
   11553          35 :            i7 = 0;
   11554          35 :            i5 = 0;
   11555          35 :            break;
   11556          35 :           }
   11557          35 :           HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   11558          35 :           i7 = 0;
   11559          35 :           i5 = 0;
   11560          35 :           break;
   11561          35 :          }
   11562          35 :         }
   11563          35 :        } else {
   11564          35 :         if ((HEAP32[i10 >> 2] | 0) == 0) {
   11565          35 :          i7 = 0;
   11566          35 :          i5 = 0;
   11567          35 :         } else {
   11568          35 :          HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   11569          35 :          i7 = 0;
   11570          35 :          i5 = 0;
   11571          35 :         }
   11572          35 :        }
   11573          35 :       } while (0);
   11574          35 :       i6 = _bitshift64Shl(i6 | 0, i13 | 0, 2) | 0;
   11575          35 :       i6 = _i64Add(i6 | 0, tempRet0 | 0, -32, -1) | 0;
   11576          35 :       i5 = _i64Add(i6 | 0, tempRet0 | 0, i7 | 0, i5 | 0) | 0;
   11577          35 :       i6 = tempRet0;
   11578          35 :       if ((i17 | 0) == 0) {
   11579          35 :        d31 = +(i4 | 0) * 0.0;
   11580          35 :        STACKTOP = i1;
   11581          35 :        return +d31;
   11582          35 :       }
   11583          35 :       if ((i6 | 0) > 0 | (i6 | 0) == 0 & i5 >>> 0 > (0 - i3 | 0) >>> 0) {
   11584          35 :        HEAP32[(___errno_location() | 0) >> 2] = 34;
   11585          35 :        d31 = +(i4 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308;
   11586          35 :        STACKTOP = i1;
   11587          35 :        return +d31;
   11588          35 :       }
   11589          35 :       i29 = i3 + -106 | 0;
   11590          35 :       i27 = ((i29 | 0) < 0) << 31 >> 31;
   11591          35 :       if ((i6 | 0) < (i27 | 0) | (i6 | 0) == (i27 | 0) & i5 >>> 0 < i29 >>> 0) {
   11592          35 :        HEAP32[(___errno_location() | 0) >> 2] = 34;
   11593          35 :        d31 = +(i4 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308;
   11594          35 :        STACKTOP = i1;
   11595          35 :        return +d31;
   11596          35 :       }
   11597          35 :       if ((i17 | 0) > -1) {
   11598          35 :        do {
   11599          35 :         i17 = i17 << 1;
   11600          35 :         if (!(d14 >= .5)) {
   11601          35 :          d28 = d14;
   11602          35 :         } else {
   11603          35 :          d28 = d14 + -1.0;
   11604          35 :          i17 = i17 | 1;
   11605          35 :         }
   11606          35 :         d14 = d14 + d28;
   11607          35 :         i5 = _i64Add(i5 | 0, i6 | 0, -1, -1) | 0;
   11608          35 :         i6 = tempRet0;
   11609          35 :        } while ((i17 | 0) > -1);
   11610          35 :       }
   11611          35 :       i3 = _i64Subtract(32, 0, i3 | 0, ((i3 | 0) < 0) << 31 >> 31 | 0) | 0;
   11612          35 :       i3 = _i64Add(i5 | 0, i6 | 0, i3 | 0, tempRet0 | 0) | 0;
   11613          35 :       i29 = tempRet0;
   11614          35 :       if (0 > (i29 | 0) | 0 == (i29 | 0) & i2 >>> 0 > i3 >>> 0) {
   11615          35 :        i2 = (i3 | 0) < 0 ? 0 : i3;
   11616          35 :       }
   11617          35 :       if ((i2 | 0) < 53) {
   11618          35 :        d28 = +(i4 | 0);
   11619          35 :        d30 = +_copysign(+(+_scalbn(1.0, 84 - i2 | 0)), +d28);
   11620          35 :        if ((i2 | 0) < 32 & d14 != 0.0) {
   11621          35 :         i29 = i17 & 1;
   11622          35 :         i17 = (i29 ^ 1) + i17 | 0;
   11623          35 :         d14 = (i29 | 0) == 0 ? 0.0 : d14;
   11624          35 :        }
   11625          35 :       } else {
   11626          35 :        d28 = +(i4 | 0);
   11627          35 :        d30 = 0.0;
   11628          35 :       }
   11629          35 :       d14 = d28 * d14 + (d30 + d28 * +(i17 >>> 0)) - d30;
   11630          35 :       if (!(d14 != 0.0)) {
   11631          35 :        HEAP32[(___errno_location() | 0) >> 2] = 34;
   11632          35 :       }
   11633          35 :       d31 = +_scalbnl(d14, i5);
   11634          35 :       STACKTOP = i1;
   11635          35 :       return +d31;
   11636          35 :      }
   11637          35 :     } while (0);
   11638          35 :     i7 = i3 + i2 | 0;
   11639          35 :     i6 = 0 - i7 | 0;
   11640          35 :     i20 = 0;
   11641          35 :     while (1) {
   11642          35 :      if ((i21 | 0) == 46) {
   11643          35 :       i13 = 139;
   11644          35 :       break;
   11645          35 :      } else if ((i21 | 0) != 48) {
   11646          35 :       i25 = 0;
   11647          35 :       i22 = 0;
   11648          35 :       i19 = 0;
   11649          35 :       break;
   11650          35 :      }
   11651          35 :      i15 = HEAP32[i9 >> 2] | 0;
   11652          35 :      if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11653          35 :       HEAP32[i9 >> 2] = i15 + 1;
   11654          35 :       i21 = HEAPU8[i15] | 0;
   11655          35 :       i20 = 1;
   11656          35 :       continue;
   11657          35 :      } else {
   11658          35 :       i21 = ___shgetc(i8) | 0;
   11659          35 :       i20 = 1;
   11660          35 :       continue;
   11661          35 :      }
   11662          35 :     }
   11663          35 :     L168 : do {
   11664          35 :      if ((i13 | 0) == 139) {
   11665          35 :       i15 = HEAP32[i9 >> 2] | 0;
   11666          35 :       if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11667          35 :        HEAP32[i9 >> 2] = i15 + 1;
   11668          35 :        i21 = HEAPU8[i15] | 0;
   11669          35 :       } else {
   11670          35 :        i21 = ___shgetc(i8) | 0;
   11671          35 :       }
   11672          35 :       if ((i21 | 0) == 48) {
   11673          35 :        i25 = -1;
   11674          35 :        i22 = -1;
   11675          35 :        while (1) {
   11676          35 :         i15 = HEAP32[i9 >> 2] | 0;
   11677          35 :         if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11678          35 :          HEAP32[i9 >> 2] = i15 + 1;
   11679          35 :          i21 = HEAPU8[i15] | 0;
   11680          35 :         } else {
   11681          35 :          i21 = ___shgetc(i8) | 0;
   11682          35 :         }
   11683          35 :         if ((i21 | 0) != 48) {
   11684          35 :          i20 = 1;
   11685          35 :          i19 = 1;
   11686          35 :          break L168;
   11687          35 :         }
   11688          35 :         i29 = _i64Add(i25 | 0, i22 | 0, -1, -1) | 0;
   11689          35 :         i25 = i29;
   11690          35 :         i22 = tempRet0;
   11691          35 :        }
   11692          35 :       } else {
   11693          35 :        i25 = 0;
   11694          35 :        i22 = 0;
   11695          35 :        i19 = 1;
   11696          35 :       }
   11697          35 :      }
   11698          35 :     } while (0);
   11699          35 :     HEAP32[i5 >> 2] = 0;
   11700          35 :     i26 = i21 + -48 | 0;
   11701          35 :     i27 = (i21 | 0) == 46;
   11702          35 :     L182 : do {
   11703          35 :      if (i26 >>> 0 < 10 | i27) {
   11704          35 :       i15 = i5 + 496 | 0;
   11705          35 :       i24 = 0;
   11706          35 :       i23 = 0;
   11707          35 :       i18 = 0;
   11708          35 :       i17 = 0;
   11709          35 :       i16 = 0;
   11710          35 :       while (1) {
   11711          35 :        do {
   11712          35 :         if (i27) {
   11713          35 :          if ((i19 | 0) == 0) {
   11714          35 :           i25 = i24;
   11715          35 :           i22 = i23;
   11716          35 :           i19 = 1;
   11717          35 :          } else {
   11718          35 :           break L182;
   11719          35 :          }
   11720          35 :         } else {
   11721          35 :          i27 = _i64Add(i24 | 0, i23 | 0, 1, 0) | 0;
   11722          35 :          i23 = tempRet0;
   11723          35 :          i29 = (i21 | 0) != 48;
   11724          35 :          if ((i17 | 0) >= 125) {
   11725          35 :           if (!i29) {
   11726          35 :            i24 = i27;
   11727          35 :            break;
   11728          35 :           }
   11729          35 :           HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1;
   11730          35 :           i24 = i27;
   11731          35 :           break;
   11732          35 :          }
   11733          35 :          i20 = i5 + (i17 << 2) | 0;
   11734          35 :          if ((i18 | 0) != 0) {
   11735          35 :           i26 = i21 + -48 + ((HEAP32[i20 >> 2] | 0) * 10 | 0) | 0;
   11736          35 :          }
   11737          35 :          HEAP32[i20 >> 2] = i26;
   11738          35 :          i18 = i18 + 1 | 0;
   11739          35 :          i21 = (i18 | 0) == 9;
   11740          35 :          i24 = i27;
   11741          35 :          i20 = 1;
   11742          35 :          i18 = i21 ? 0 : i18;
   11743          35 :          i17 = (i21 & 1) + i17 | 0;
   11744          35 :          i16 = i29 ? i27 : i16;
   11745          35 :         }
   11746          35 :        } while (0);
   11747          35 :        i21 = HEAP32[i9 >> 2] | 0;
   11748          35 :        if (i21 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   11749          35 :         HEAP32[i9 >> 2] = i21 + 1;
   11750          35 :         i21 = HEAPU8[i21] | 0;
   11751          35 :        } else {
   11752          35 :         i21 = ___shgetc(i8) | 0;
   11753          35 :        }
   11754          35 :        i26 = i21 + -48 | 0;
   11755          35 :        i27 = (i21 | 0) == 46;
   11756          35 :        if (!(i26 >>> 0 < 10 | i27)) {
   11757          35 :         i13 = 162;
   11758          35 :         break;
   11759          35 :        }
   11760          35 :       }
   11761          35 :      } else {
   11762          35 :       i24 = 0;
   11763          35 :       i23 = 0;
   11764          35 :       i18 = 0;
   11765          35 :       i17 = 0;
   11766          35 :       i16 = 0;
   11767          35 :       i13 = 162;
   11768          35 :      }
   11769          35 :     } while (0);
   11770          35 :     if ((i13 | 0) == 162) {
   11771          35 :      i13 = (i19 | 0) == 0;
   11772          35 :      i25 = i13 ? i24 : i25;
   11773          35 :      i22 = i13 ? i23 : i22;
   11774          35 :     }
   11775          35 :     i13 = (i20 | 0) != 0;
   11776          35 :     if (i13 ? (i21 | 32 | 0) == 101 : 0) {
   11777          35 :      i15 = _scanexp(i8, i11) | 0;
   11778          35 :      i11 = tempRet0;
   11779          35 :      do {
   11780          35 :       if ((i15 | 0) == 0 & (i11 | 0) == -2147483648) {
   11781          35 :        if (i12) {
   11782          35 :         ___shlim(i8, 0);
   11783          35 :         d31 = 0.0;
   11784          35 :         STACKTOP = i1;
   11785          35 :         return +d31;
   11786          35 :        } else {
   11787          35 :         if ((HEAP32[i10 >> 2] | 0) == 0) {
   11788          35 :          i15 = 0;
   11789          35 :          i11 = 0;
   11790          35 :          break;
   11791          35 :         }
   11792          35 :         HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   11793          35 :         i15 = 0;
   11794          35 :         i11 = 0;
   11795          35 :         break;
   11796          35 :        }
   11797          35 :       }
   11798          35 :      } while (0);
   11799          35 :      i9 = _i64Add(i15 | 0, i11 | 0, i25 | 0, i22 | 0) | 0;
   11800          35 :      i22 = tempRet0;
   11801          35 :     } else {
   11802          35 :      if ((i21 | 0) > -1 ? (HEAP32[i10 >> 2] | 0) != 0 : 0) {
   11803          35 :       HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   11804          35 :       i9 = i25;
   11805          35 :      } else {
   11806          35 :       i9 = i25;
   11807          35 :      }
   11808          35 :     }
   11809          35 :     if (!i13) {
   11810          35 :      HEAP32[(___errno_location() | 0) >> 2] = 22;
   11811          35 :      ___shlim(i8, 0);
   11812          35 :      d31 = 0.0;
   11813          35 :      STACKTOP = i1;
   11814          35 :      return +d31;
   11815          35 :     }
   11816          35 :     i8 = HEAP32[i5 >> 2] | 0;
   11817          35 :     if ((i8 | 0) == 0) {
   11818          35 :      d31 = +(i4 | 0) * 0.0;
   11819          35 :      STACKTOP = i1;
   11820          35 :      return +d31;
   11821          35 :     }
   11822          35 :     do {
   11823          35 :      if ((i9 | 0) == (i24 | 0) & (i22 | 0) == (i23 | 0) & ((i23 | 0) < 0 | (i23 | 0) == 0 & i24 >>> 0 < 10)) {
   11824          35 :       if (!(i2 >>> 0 > 30) ? (i8 >>> i2 | 0) != 0 : 0) {
   11825          35 :        break;
   11826          35 :       }
   11827          35 :       d31 = +(i4 | 0) * +(i8 >>> 0);
   11828          35 :       STACKTOP = i1;
   11829          35 :       return +d31;
   11830          35 :      }
   11831          35 :     } while (0);
   11832          35 :     i29 = (i3 | 0) / -2 | 0;
   11833          35 :     i27 = ((i29 | 0) < 0) << 31 >> 31;
   11834          35 :     if ((i22 | 0) > (i27 | 0) | (i22 | 0) == (i27 | 0) & i9 >>> 0 > i29 >>> 0) {
   11835          35 :      HEAP32[(___errno_location() | 0) >> 2] = 34;
   11836          35 :      d31 = +(i4 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308;
   11837          35 :      STACKTOP = i1;
   11838          35 :      return +d31;
   11839          35 :     }
   11840          35 :     i29 = i3 + -106 | 0;
   11841          35 :     i27 = ((i29 | 0) < 0) << 31 >> 31;
   11842          35 :     if ((i22 | 0) < (i27 | 0) | (i22 | 0) == (i27 | 0) & i9 >>> 0 < i29 >>> 0) {
   11843          35 :      HEAP32[(___errno_location() | 0) >> 2] = 34;
   11844          35 :      d31 = +(i4 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308;
   11845          35 :      STACKTOP = i1;
   11846          35 :      return +d31;
   11847          35 :     }
   11848          35 :     if ((i18 | 0) != 0) {
   11849          35 :      if ((i18 | 0) < 9) {
   11850          35 :       i8 = i5 + (i17 << 2) | 0;
   11851          35 :       i10 = HEAP32[i8 >> 2] | 0;
   11852          35 :       do {
   11853          35 :        i10 = i10 * 10 | 0;
   11854          35 :        i18 = i18 + 1 | 0;
   11855          35 :       } while ((i18 | 0) != 9);
   11856          35 :       HEAP32[i8 >> 2] = i10;
   11857          35 :      }
   11858          35 :      i17 = i17 + 1 | 0;
   11859          35 :     }
   11860          35 :     do {
   11861          35 :      if ((i16 | 0) < 9 ? (i16 | 0) <= (i9 | 0) & (i9 | 0) < 18 : 0) {
   11862          35 :       if ((i9 | 0) == 9) {
   11863          35 :        d31 = +(i4 | 0) * +((HEAP32[i5 >> 2] | 0) >>> 0);
   11864          35 :        STACKTOP = i1;
   11865          35 :        return +d31;
   11866          35 :       }
   11867          35 :       if ((i9 | 0) < 9) {
   11868          35 :        d31 = +(i4 | 0) * +((HEAP32[i5 >> 2] | 0) >>> 0) / +(HEAP32[13440 + (8 - i9 << 2) >> 2] | 0);
   11869          35 :        STACKTOP = i1;
   11870          35 :        return +d31;
   11871          35 :       }
   11872          35 :       i10 = i2 + 27 + (Math_imul(i9, -3) | 0) | 0;
   11873          35 :       i8 = HEAP32[i5 >> 2] | 0;
   11874          35 :       if ((i10 | 0) <= 30 ? (i8 >>> i10 | 0) != 0 : 0) {
   11875          35 :        break;
   11876          35 :       }
   11877          35 :       d31 = +(i4 | 0) * +(i8 >>> 0) * +(HEAP32[13440 + (i9 + -10 << 2) >> 2] | 0);
   11878          35 :       STACKTOP = i1;
   11879          35 :       return +d31;
   11880          35 :      }
   11881          35 :     } while (0);
   11882          35 :     i8 = (i9 | 0) % 9 | 0;
   11883          35 :     if ((i8 | 0) == 0) {
   11884          35 :      i8 = 0;
   11885          35 :      i10 = 0;
   11886          35 :     } else {
   11887          35 :      i11 = (i9 | 0) > -1 ? i8 : i8 + 9 | 0;
   11888          35 :      i12 = HEAP32[13440 + (8 - i11 << 2) >> 2] | 0;
   11889          35 :      if ((i17 | 0) != 0) {
   11890          35 :       i10 = 1e9 / (i12 | 0) | 0;
   11891          35 :       i8 = 0;
   11892          35 :       i16 = 0;
   11893          35 :       i15 = 0;
   11894          35 :       while (1) {
   11895          35 :        i27 = i5 + (i15 << 2) | 0;
   11896          35 :        i13 = HEAP32[i27 >> 2] | 0;
   11897          35 :        i29 = ((i13 >>> 0) / (i12 >>> 0) | 0) + i16 | 0;
   11898          35 :        HEAP32[i27 >> 2] = i29;
   11899          35 :        i16 = Math_imul((i13 >>> 0) % (i12 >>> 0) | 0, i10) | 0;
   11900          35 :        i13 = i15 + 1 | 0;
   11901          35 :        if ((i15 | 0) == (i8 | 0) & (i29 | 0) == 0) {
   11902          35 :         i8 = i13 & 127;
   11903          35 :         i9 = i9 + -9 | 0;
   11904          35 :        }
   11905          35 :        if ((i13 | 0) == (i17 | 0)) {
   11906          35 :         break;
   11907          35 :        } else {
   11908          35 :         i15 = i13;
   11909          35 :        }
   11910          35 :       }
   11911          35 :       if ((i16 | 0) != 0) {
   11912          35 :        HEAP32[i5 + (i17 << 2) >> 2] = i16;
   11913          35 :        i17 = i17 + 1 | 0;
   11914          35 :       }
   11915          35 :      } else {
   11916          35 :       i8 = 0;
   11917          35 :       i17 = 0;
   11918          35 :      }
   11919          35 :      i10 = 0;
   11920          35 :      i9 = 9 - i11 + i9 | 0;
   11921          35 :     }
   11922          35 :     L280 : while (1) {
   11923          35 :      i11 = i5 + (i8 << 2) | 0;
   11924          35 :      if ((i9 | 0) < 18) {
   11925          35 :       do {
   11926          35 :        i13 = 0;
   11927          35 :        i11 = i17 + 127 | 0;
   11928          35 :        while (1) {
   11929          35 :         i11 = i11 & 127;
   11930          35 :         i12 = i5 + (i11 << 2) | 0;
   11931          35 :         i15 = _bitshift64Shl(HEAP32[i12 >> 2] | 0, 0, 29) | 0;
   11932          35 :         i15 = _i64Add(i15 | 0, tempRet0 | 0, i13 | 0, 0) | 0;
   11933          35 :         i13 = tempRet0;
   11934          35 :         if (i13 >>> 0 > 0 | (i13 | 0) == 0 & i15 >>> 0 > 1e9) {
   11935          35 :          i29 = ___udivdi3(i15 | 0, i13 | 0, 1e9, 0) | 0;
   11936          35 :          i15 = ___uremdi3(i15 | 0, i13 | 0, 1e9, 0) | 0;
   11937          35 :          i13 = i29;
   11938          35 :         } else {
   11939          35 :          i13 = 0;
   11940          35 :         }
   11941          35 :         HEAP32[i12 >> 2] = i15;
   11942          35 :         i12 = (i11 | 0) == (i8 | 0);
   11943          35 :         if (!((i11 | 0) != (i17 + 127 & 127 | 0) | i12)) {
   11944          35 :          i17 = (i15 | 0) == 0 ? i11 : i17;
   11945          35 :         }
   11946          35 :         if (i12) {
   11947          35 :          break;
   11948          35 :         } else {
   11949          35 :          i11 = i11 + -1 | 0;
   11950          35 :         }
   11951          35 :        }
   11952          35 :        i10 = i10 + -29 | 0;
   11953          35 :       } while ((i13 | 0) == 0);
   11954          35 :      } else {
   11955          35 :       if ((i9 | 0) != 18) {
   11956          35 :        break;
   11957          35 :       }
   11958          35 :       do {
   11959          35 :        if (!((HEAP32[i11 >> 2] | 0) >>> 0 < 9007199)) {
   11960          35 :         i9 = 18;
   11961          35 :         break L280;
   11962          35 :        }
   11963          35 :        i13 = 0;
   11964          35 :        i12 = i17 + 127 | 0;
   11965          35 :        while (1) {
   11966          35 :         i12 = i12 & 127;
   11967          35 :         i15 = i5 + (i12 << 2) | 0;
   11968          35 :         i16 = _bitshift64Shl(HEAP32[i15 >> 2] | 0, 0, 29) | 0;
   11969          35 :         i16 = _i64Add(i16 | 0, tempRet0 | 0, i13 | 0, 0) | 0;
   11970          35 :         i13 = tempRet0;
   11971          35 :         if (i13 >>> 0 > 0 | (i13 | 0) == 0 & i16 >>> 0 > 1e9) {
   11972          35 :          i29 = ___udivdi3(i16 | 0, i13 | 0, 1e9, 0) | 0;
   11973          35 :          i16 = ___uremdi3(i16 | 0, i13 | 0, 1e9, 0) | 0;
   11974          35 :          i13 = i29;
   11975          35 :         } else {
   11976          35 :          i13 = 0;
   11977          35 :         }
   11978          35 :         HEAP32[i15 >> 2] = i16;
   11979          35 :         i15 = (i12 | 0) == (i8 | 0);
   11980          35 :         if (!((i12 | 0) != (i17 + 127 & 127 | 0) | i15)) {
   11981          35 :          i17 = (i16 | 0) == 0 ? i12 : i17;
   11982          35 :         }
   11983          35 :         if (i15) {
   11984          35 :          break;
   11985          35 :         } else {
   11986          35 :          i12 = i12 + -1 | 0;
   11987          35 :         }
   11988          35 :        }
   11989          35 :        i10 = i10 + -29 | 0;
   11990          35 :       } while ((i13 | 0) == 0);
   11991          35 :      }
   11992          35 :      i8 = i8 + 127 & 127;
   11993          35 :      if ((i8 | 0) == (i17 | 0)) {
   11994          35 :       i29 = i17 + 127 & 127;
   11995          35 :       i17 = i5 + ((i17 + 126 & 127) << 2) | 0;
   11996          35 :       HEAP32[i17 >> 2] = HEAP32[i17 >> 2] | HEAP32[i5 + (i29 << 2) >> 2];
   11997          35 :       i17 = i29;
   11998          35 :      }
   11999          35 :      HEAP32[i5 + (i8 << 2) >> 2] = i13;
   12000          35 :      i9 = i9 + 9 | 0;
   12001          35 :     }
   12002          35 :     L311 : while (1) {
   12003          35 :      i11 = i17 + 1 & 127;
   12004          35 :      i12 = i5 + ((i17 + 127 & 127) << 2) | 0;
   12005          35 :      while (1) {
   12006          35 :       i15 = (i9 | 0) == 18;
   12007          35 :       i13 = (i9 | 0) > 27 ? 9 : 1;
   12008          35 :       while (1) {
   12009          35 :        i16 = 0;
   12010          35 :        while (1) {
   12011          35 :         i18 = i16 + i8 & 127;
   12012          35 :         if ((i18 | 0) == (i17 | 0)) {
   12013          35 :          i16 = 2;
   12014          35 :          break;
   12015          35 :         }
   12016          35 :         i18 = HEAP32[i5 + (i18 << 2) >> 2] | 0;
   12017          35 :         i19 = HEAP32[13432 + (i16 << 2) >> 2] | 0;
   12018          35 :         if (i18 >>> 0 < i19 >>> 0) {
   12019          35 :          i16 = 2;
   12020          35 :          break;
   12021          35 :         }
   12022          35 :         i20 = i16 + 1 | 0;
   12023          35 :         if (i18 >>> 0 > i19 >>> 0) {
   12024          35 :          break;
   12025          35 :         }
   12026          35 :         if ((i20 | 0) < 2) {
   12027          35 :          i16 = i20;
   12028          35 :         } else {
   12029          35 :          i16 = i20;
   12030          35 :          break;
   12031          35 :         }
   12032          35 :        }
   12033          35 :        if ((i16 | 0) == 2 & i15) {
   12034          35 :         break L311;
   12035          35 :        }
   12036          35 :        i10 = i13 + i10 | 0;
   12037          35 :        if ((i8 | 0) == (i17 | 0)) {
   12038          35 :         i8 = i17;
   12039          35 :        } else {
   12040          35 :         break;
   12041          35 :        }
   12042          35 :       }
   12043          35 :       i15 = (1 << i13) + -1 | 0;
   12044          35 :       i19 = 1e9 >>> i13;
   12045          35 :       i18 = i8;
   12046          35 :       i16 = 0;
   12047          35 :       do {
   12048          35 :        i27 = i5 + (i8 << 2) | 0;
   12049          35 :        i29 = HEAP32[i27 >> 2] | 0;
   12050          35 :        i20 = (i29 >>> i13) + i16 | 0;
   12051          35 :        HEAP32[i27 >> 2] = i20;
   12052          35 :        i16 = Math_imul(i29 & i15, i19) | 0;
   12053          35 :        i20 = (i8 | 0) == (i18 | 0) & (i20 | 0) == 0;
   12054          35 :        i8 = i8 + 1 & 127;
   12055          35 :        i9 = i20 ? i9 + -9 | 0 : i9;
   12056          35 :        i18 = i20 ? i8 : i18;
   12057          35 :       } while ((i8 | 0) != (i17 | 0));
   12058          35 :       if ((i16 | 0) == 0) {
   12059          35 :        i8 = i18;
   12060          35 :        continue;
   12061          35 :       }
   12062          35 :       if ((i11 | 0) != (i18 | 0)) {
   12063          35 :        break;
   12064          35 :       }
   12065          35 :       HEAP32[i12 >> 2] = HEAP32[i12 >> 2] | 1;
   12066          35 :       i8 = i18;
   12067          35 :      }
   12068          35 :      HEAP32[i5 + (i17 << 2) >> 2] = i16;
   12069          35 :      i8 = i18;
   12070          35 :      i17 = i11;
   12071          35 :     }
   12072          35 :     i9 = i8 & 127;
   12073          35 :     if ((i9 | 0) == (i17 | 0)) {
   12074          35 :      HEAP32[i5 + (i11 + -1 << 2) >> 2] = 0;
   12075          35 :      i17 = i11;
   12076          35 :     }
   12077          35 :     d28 = +((HEAP32[i5 + (i9 << 2) >> 2] | 0) >>> 0);
   12078          35 :     i9 = i8 + 1 & 127;
   12079          35 :     if ((i9 | 0) == (i17 | 0)) {
   12080          35 :      i17 = i17 + 1 & 127;
   12081          35 :      HEAP32[i5 + (i17 + -1 << 2) >> 2] = 0;
   12082          35 :     }
   12083          35 :     d14 = +(i4 | 0);
   12084          35 :     d30 = d14 * (d28 * 1.0e9 + +((HEAP32[i5 + (i9 << 2) >> 2] | 0) >>> 0));
   12085          35 :     i4 = i10 + 53 | 0;
   12086          35 :     i3 = i4 - i3 | 0;
   12087          35 :     if ((i3 | 0) < (i2 | 0)) {
   12088          35 :      i2 = (i3 | 0) < 0 ? 0 : i3;
   12089          35 :      i9 = 1;
   12090          35 :     } else {
   12091          35 :      i9 = 0;
   12092          35 :     }
   12093          35 :     if ((i2 | 0) < 53) {
   12094          35 :      d33 = +_copysign(+(+_scalbn(1.0, 105 - i2 | 0)), +d30);
   12095          35 :      d32 = +_fmod(+d30, +(+_scalbn(1.0, 53 - i2 | 0)));
   12096          35 :      d28 = d33;
   12097          35 :      d31 = d32;
   12098          35 :      d30 = d33 + (d30 - d32);
   12099          35 :     } else {
   12100          35 :      d28 = 0.0;
   12101          35 :      d31 = 0.0;
   12102          35 :     }
   12103          35 :     i11 = i8 + 2 & 127;
   12104          35 :     if ((i11 | 0) != (i17 | 0)) {
   12105          35 :      i5 = HEAP32[i5 + (i11 << 2) >> 2] | 0;
   12106          35 :      do {
   12107          35 :       if (!(i5 >>> 0 < 5e8)) {
   12108          35 :        if (i5 >>> 0 > 5e8) {
   12109          35 :         d31 = d14 * .75 + d31;
   12110          35 :         break;
   12111          35 :        }
   12112          35 :        if ((i8 + 3 & 127 | 0) == (i17 | 0)) {
   12113          35 :         d31 = d14 * .5 + d31;
   12114          35 :         break;
   12115          35 :        } else {
   12116          35 :         d31 = d14 * .75 + d31;
   12117          35 :         break;
   12118          35 :        }
   12119          35 :       } else {
   12120          35 :        if ((i5 | 0) == 0 ? (i8 + 3 & 127 | 0) == (i17 | 0) : 0) {
   12121          35 :         break;
   12122          35 :        }
   12123          35 :        d31 = d14 * .25 + d31;
   12124          35 :       }
   12125          35 :      } while (0);
   12126          35 :      if ((53 - i2 | 0) > 1 ? !(+_fmod(+d31, 1.0) != 0.0) : 0) {
   12127          35 :       d31 = d31 + 1.0;
   12128          35 :      }
   12129          35 :     }
   12130          35 :     d14 = d30 + d31 - d28;
   12131          35 :     do {
   12132          35 :      if ((i4 & 2147483647 | 0) > (-2 - i7 | 0)) {
   12133          35 :       if (+Math_abs(+d14) >= 9007199254740992.0) {
   12134          35 :        i9 = (i9 | 0) != 0 & (i2 | 0) == (i3 | 0) ? 0 : i9;
   12135          35 :        i10 = i10 + 1 | 0;
   12136          35 :        d14 = d14 * .5;
   12137          35 :       }
   12138          35 :       if ((i10 + 50 | 0) <= (i6 | 0) ? !((i9 | 0) != 0 & d31 != 0.0) : 0) {
   12139          35 :        break;
   12140          35 :       }
   12141          35 :       HEAP32[(___errno_location() | 0) >> 2] = 34;
   12142          35 :      }
   12143          35 :     } while (0);
   12144          35 :     d33 = +_scalbnl(d14, i10);
   12145          35 :     STACKTOP = i1;
   12146          35 :     return +d33;
   12147          35 :    } else if ((i7 | 0) == 3) {
   12148          35 :     i2 = HEAP32[i9 >> 2] | 0;
   12149          35 :     if (i2 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   12150          35 :      HEAP32[i9 >> 2] = i2 + 1;
   12151          35 :      i2 = HEAPU8[i2] | 0;
   12152          35 :     } else {
   12153          35 :      i2 = ___shgetc(i8) | 0;
   12154          35 :     }
   12155          35 :     if ((i2 | 0) == 40) {
   12156          35 :      i2 = 1;
   12157          35 :     } else {
   12158          35 :      if ((HEAP32[i10 >> 2] | 0) == 0) {
   12159          35 :       d33 = nan;
   12160          35 :       STACKTOP = i1;
   12161          35 :       return +d33;
   12162          35 :      }
   12163          35 :      HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   12164          35 :      d33 = nan;
   12165          35 :      STACKTOP = i1;
   12166          35 :      return +d33;
   12167          35 :     }
   12168          35 :     while (1) {
   12169          35 :      i3 = HEAP32[i9 >> 2] | 0;
   12170          35 :      if (i3 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
   12171          35 :       HEAP32[i9 >> 2] = i3 + 1;
   12172          35 :       i3 = HEAPU8[i3] | 0;
   12173          35 :      } else {
   12174          35 :       i3 = ___shgetc(i8) | 0;
   12175          35 :      }
   12176          35 :      if (!((i3 + -48 | 0) >>> 0 < 10 | (i3 + -65 | 0) >>> 0 < 26) ? !((i3 + -97 | 0) >>> 0 < 26 | (i3 | 0) == 95) : 0) {
   12177          35 :       break;
   12178          35 :      }
   12179          35 :      i2 = i2 + 1 | 0;
   12180          35 :     }
   12181          35 :     if ((i3 | 0) == 41) {
   12182          35 :      d33 = nan;
   12183          35 :      STACKTOP = i1;
   12184          35 :      return +d33;
   12185          35 :     }
   12186          35 :     i3 = (HEAP32[i10 >> 2] | 0) == 0;
   12187          35 :     if (!i3) {
   12188          35 :      HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   12189          35 :     }
   12190          35 :     if (i12) {
   12191          35 :      HEAP32[(___errno_location() | 0) >> 2] = 22;
   12192          35 :      ___shlim(i8, 0);
   12193          35 :      d33 = 0.0;
   12194          35 :      STACKTOP = i1;
   12195          35 :      return +d33;
   12196          35 :     }
   12197          35 :     if ((i2 | 0) == 0 | i3) {
   12198          35 :      d33 = nan;
   12199          35 :      STACKTOP = i1;
   12200          35 :      return +d33;
   12201          35 :     }
   12202          35 :     while (1) {
   12203          35 :      i2 = i2 + -1 | 0;
   12204          35 :      HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   12205          35 :      if ((i2 | 0) == 0) {
   12206          35 :       d14 = nan;
   12207          35 :       break;
   12208          35 :      }
   12209          35 :     }
   12210          35 :     STACKTOP = i1;
   12211          35 :     return +d14;
   12212          35 :    } else {
   12213          35 :     if ((HEAP32[i10 >> 2] | 0) != 0) {
   12214          35 :      HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   12215          35 :     }
   12216          35 :     HEAP32[(___errno_location() | 0) >> 2] = 22;
   12217          35 :     ___shlim(i8, 0);
   12218          35 :     d33 = 0.0;
   12219          35 :     STACKTOP = i1;
   12220          35 :     return +d33;
   12221          35 :    }
   12222          35 :   }
   12223          35 :  } while (0);
   12224          35 :  if ((i13 | 0) == 23) {
   12225          35 :   i2 = (HEAP32[i10 >> 2] | 0) == 0;
   12226          35 :   if (!i2) {
   12227          35 :    HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   12228          35 :   }
   12229          35 :   if (!(i7 >>> 0 < 4 | (i11 | 0) == 0 | i2)) {
   12230          35 :    do {
   12231          35 :     HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
   12232          35 :     i7 = i7 + -1 | 0;
   12233          35 :    } while (i7 >>> 0 > 3);
   12234          35 :   }
   12235          35 :  }
   12236          35 :  d33 = +(i4 | 0) * inf;
   12237          35 :  STACKTOP = i1;
   12238          35 :  return +d33;
   12239          35 : }
   12240          35 : function _statement(i4) {
   12241          35 :  i4 = i4 | 0;
   12242          35 :  var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0;
   12243          35 :  i2 = STACKTOP;
   12244          35 :  STACKTOP = STACKTOP + 160 | 0;
   12245          35 :  i8 = i2 + 120 | 0;
   12246          35 :  i24 = i2 + 96 | 0;
   12247          35 :  i15 = i2 + 72 | 0;
   12248          35 :  i25 = i2 + 48 | 0;
   12249          35 :  i20 = i2 + 24 | 0;
   12250          35 :  i21 = i2;
   12251          35 :  i19 = i4 + 4 | 0;
   12252          35 :  i6 = HEAP32[i19 >> 2] | 0;
   12253          35 :  i3 = i4 + 48 | 0;
   12254          35 :  i9 = HEAP32[i3 >> 2] | 0;
   12255          35 :  i1 = i4 + 52 | 0;
   12256          35 :  i26 = (HEAP32[i1 >> 2] | 0) + 38 | 0;
   12257          35 :  i27 = (HEAP16[i26 >> 1] | 0) + 1 << 16 >> 16;
   12258          35 :  HEAP16[i26 >> 1] = i27;
   12259          35 :  if ((i27 & 65535) > 200) {
   12260          35 :   i27 = i9 + 12 | 0;
   12261          35 :   i26 = HEAP32[(HEAP32[i27 >> 2] | 0) + 52 >> 2] | 0;
   12262          35 :   i5 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0;
   12263          35 :   if ((i5 | 0) == 0) {
   12264          35 :    i29 = 6552;
   12265          35 :    HEAP32[i8 >> 2] = 6360;
   12266          35 :    i28 = i8 + 4 | 0;
   12267          35 :    HEAP32[i28 >> 2] = 200;
   12268          35 :    i28 = i8 + 8 | 0;
   12269          35 :    HEAP32[i28 >> 2] = i29;
   12270          35 :    i28 = _luaO_pushfstring(i26, 6592, i8) | 0;
   12271          35 :    i29 = HEAP32[i27 >> 2] | 0;
   12272          35 :    _luaX_syntaxerror(i29, i28);
   12273          35 :   }
   12274          35 :   HEAP32[i8 >> 2] = i5;
   12275          35 :   i28 = _luaO_pushfstring(i26, 6568, i8) | 0;
   12276          35 :   HEAP32[i8 >> 2] = 6360;
   12277          35 :   i29 = i8 + 4 | 0;
   12278          35 :   HEAP32[i29 >> 2] = 200;
   12279          35 :   i29 = i8 + 8 | 0;
   12280          35 :   HEAP32[i29 >> 2] = i28;
   12281          35 :   i29 = _luaO_pushfstring(i26, 6592, i8) | 0;
   12282          35 :   i28 = HEAP32[i27 >> 2] | 0;
   12283          35 :   _luaX_syntaxerror(i28, i29);
   12284          35 :  }
   12285          35 :  i5 = i4 + 16 | 0;
   12286          35 :  L8 : do {
   12287          35 :   switch (HEAP32[i5 >> 2] | 0) {
   12288          35 :   case 59:
   12289          35 :    {
   12290          35 :     _luaX_next(i4);
   12291          35 :     break;
   12292          35 :    }
   12293          35 :   case 267:
   12294          35 :    {
   12295          35 :     HEAP32[i21 >> 2] = -1;
   12296          35 :     _test_then_block(i4, i21);
   12297          35 :     while (1) {
   12298          35 :      i8 = HEAP32[i5 >> 2] | 0;
   12299          35 :      if ((i8 | 0) == 260) {
   12300          35 :       i7 = 10;
   12301          35 :       break;
   12302          35 :      } else if ((i8 | 0) != 261) {
   12303          35 :       break;
   12304          35 :      }
   12305          35 :      _test_then_block(i4, i21);
   12306          35 :     }
   12307          35 :     if ((i7 | 0) == 10) {
   12308          35 :      _luaX_next(i4);
   12309          35 :      i7 = HEAP32[i3 >> 2] | 0;
   12310          35 :      HEAP8[i20 + 10 | 0] = 0;
   12311          35 :      HEAP8[i20 + 8 | 0] = HEAP8[i7 + 46 | 0] | 0;
   12312          35 :      i29 = HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] | 0;
   12313          35 :      HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
   12314          35 :      HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
   12315          35 :      HEAP8[i20 + 9 | 0] = 0;
   12316          35 :      i29 = i7 + 16 | 0;
   12317          35 :      HEAP32[i20 >> 2] = HEAP32[i29 >> 2];
   12318          35 :      HEAP32[i29 >> 2] = i20;
   12319          35 :      L16 : do {
   12320          35 :       i8 = HEAP32[i5 >> 2] | 0;
   12321          35 :       switch (i8 | 0) {
   12322          35 :       case 277:
   12323          35 :       case 286:
   12324          35 :       case 262:
   12325          35 :       case 261:
   12326          35 :       case 260:
   12327          35 :        {
   12328          35 :         break L16;
   12329          35 :        }
   12330          35 :       default:
   12331          35 :        {}
   12332          35 :       }
   12333          35 :       _statement(i4);
   12334          35 :      } while ((i8 | 0) != 274);
   12335          35 :      _leaveblock(i7);
   12336          35 :     }
   12337          35 :     _check_match(i4, 262, 267, i6);
   12338          35 :     _luaK_patchtohere(i9, HEAP32[i21 >> 2] | 0);
   12339          35 :     break;
   12340          35 :    }
   12341          35 :   case 259:
   12342          35 :    {
   12343          35 :     _luaX_next(i4);
   12344          35 :     i7 = HEAP32[i3 >> 2] | 0;
   12345          35 :     HEAP8[i20 + 10 | 0] = 0;
   12346          35 :     HEAP8[i20 + 8 | 0] = HEAP8[i7 + 46 | 0] | 0;
   12347          35 :     i29 = HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] | 0;
   12348          35 :     HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
   12349          35 :     HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
   12350          35 :     HEAP8[i20 + 9 | 0] = 0;
   12351          35 :     i29 = i7 + 16 | 0;
   12352          35 :     HEAP32[i20 >> 2] = HEAP32[i29 >> 2];
   12353          35 :     HEAP32[i29 >> 2] = i20;
   12354          35 :     L22 : do {
   12355          35 :      i8 = HEAP32[i5 >> 2] | 0;
   12356          35 :      switch (i8 | 0) {
   12357          35 :      case 277:
   12358          35 :      case 286:
   12359          35 :      case 262:
   12360          35 :      case 261:
   12361          35 :      case 260:
   12362          35 :       {
   12363          35 :        break L22;
   12364          35 :       }
   12365          35 :      default:
   12366          35 :       {}
   12367          35 :      }
   12368          35 :      _statement(i4);
   12369          35 :     } while ((i8 | 0) != 274);
   12370          35 :     _leaveblock(i7);
   12371          35 :     _check_match(i4, 262, 259, i6);
   12372          35 :     break;
   12373          35 :    }
   12374          35 :   case 269:
   12375          35 :    {
   12376          35 :     _luaX_next(i4);
   12377          35 :     i6 = HEAP32[i5 >> 2] | 0;
   12378          35 :     if ((i6 | 0) == 265) {
   12379          35 :      _luaX_next(i4);
   12380          35 :      i7 = HEAP32[i3 >> 2] | 0;
   12381          35 :      if ((HEAP32[i5 >> 2] | 0) == 288) {
   12382          35 :       i29 = HEAP32[i4 + 24 >> 2] | 0;
   12383          35 :       _luaX_next(i4);
   12384          35 :       _new_localvar(i4, i29);
   12385          35 :       i29 = HEAP32[i3 >> 2] | 0;
   12386          35 :       i27 = i29 + 46 | 0;
   12387          35 :       i28 = (HEAPU8[i27] | 0) + 1 | 0;
   12388          35 :       HEAP8[i27] = i28;
   12389          35 :       HEAP32[(HEAP32[(HEAP32[i29 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i29 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((i28 & 255) + -1 + (HEAP32[i29 + 40 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i29 + 20 >> 2];
   12390          35 :       _body(i4, i25, 0, HEAP32[i19 >> 2] | 0);
   12391          35 :       HEAP32[(HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i7 + 40 >> 2] | 0) + (HEAP32[i25 + 8 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i7 + 20 >> 2];
   12392          35 :       break L8;
   12393          35 :      } else {
   12394          35 :       _error_expected(i4, 288);
   12395          35 :      }
   12396          35 :     }
   12397          35 :     if ((i6 | 0) != 288) {
   12398          35 :      _error_expected(i4, 288);
   12399          35 :     }
   12400          35 :     i7 = i4 + 24 | 0;
   12401          35 :     i6 = 1;
   12402          35 :     while (1) {
   12403          35 :      i8 = HEAP32[i7 >> 2] | 0;
   12404          35 :      _luaX_next(i4);
   12405          35 :      _new_localvar(i4, i8);
   12406          35 :      i8 = HEAP32[i5 >> 2] | 0;
   12407          35 :      if ((i8 | 0) == 61) {
   12408          35 :       i7 = 81;
   12409          35 :       break;
   12410          35 :      } else if ((i8 | 0) != 44) {
   12411          35 :       i7 = 83;
   12412          35 :       break;
   12413          35 :      }
   12414          35 :      _luaX_next(i4);
   12415          35 :      if ((HEAP32[i5 >> 2] | 0) == 288) {
   12416          35 :       i6 = i6 + 1 | 0;
   12417          35 :      } else {
   12418          35 :       i7 = 78;
   12419          35 :       break;
   12420          35 :      }
   12421          35 :     }
   12422          35 :     do {
   12423          35 :      if ((i7 | 0) == 78) {
   12424          35 :       _error_expected(i4, 288);
   12425          35 :      } else if ((i7 | 0) == 81) {
   12426          35 :       _luaX_next(i4);
   12427          35 :       _subexpr(i4, i15, 0) | 0;
   12428          35 :       if ((HEAP32[i5 >> 2] | 0) == 44) {
   12429          35 :        i8 = 1;
   12430          35 :        do {
   12431          35 :         _luaX_next(i4);
   12432          35 :         _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i15);
   12433          35 :         _subexpr(i4, i15, 0) | 0;
   12434          35 :         i8 = i8 + 1 | 0;
   12435          35 :        } while ((HEAP32[i5 >> 2] | 0) == 44);
   12436          35 :       } else {
   12437          35 :        i8 = 1;
   12438          35 :       }
   12439          35 :       i5 = HEAP32[i15 >> 2] | 0;
   12440          35 :       i4 = HEAP32[i3 >> 2] | 0;
   12441          35 :       i8 = i6 - i8 | 0;
   12442          35 :       if ((i5 | 0) == 0) {
   12443          35 :        i17 = i8;
   12444          35 :        i18 = i4;
   12445          35 :        i7 = 88;
   12446          35 :        break;
   12447          35 :       } else if (!((i5 | 0) == 13 | (i5 | 0) == 12)) {
   12448          35 :        _luaK_exp2nextreg(i4, i15);
   12449          35 :        i17 = i8;
   12450          35 :        i18 = i4;
   12451          35 :        i7 = 88;
   12452          35 :        break;
   12453          35 :       }
   12454          35 :       i5 = i8 + 1 | 0;
   12455          35 :       i5 = (i5 | 0) < 0 ? 0 : i5;
   12456          35 :       _luaK_setreturns(i4, i15, i5);
   12457          35 :       if ((i5 | 0) > 1) {
   12458          35 :        _luaK_reserveregs(i4, i5 + -1 | 0);
   12459          35 :       }
   12460          35 :      } else if ((i7 | 0) == 83) {
   12461          35 :       HEAP32[i15 >> 2] = 0;
   12462          35 :       i17 = i6;
   12463          35 :       i18 = HEAP32[i3 >> 2] | 0;
   12464          35 :       i7 = 88;
   12465          35 :      }
   12466          35 :     } while (0);
   12467          35 :     if ((i7 | 0) == 88 ? (i17 | 0) > 0 : 0) {
   12468          35 :      i29 = HEAPU8[i18 + 48 | 0] | 0;
   12469          35 :      _luaK_reserveregs(i18, i17);
   12470          35 :      _luaK_nil(i18, i29, i17);
   12471          35 :     }
   12472          35 :     i5 = HEAP32[i3 >> 2] | 0;
   12473          35 :     i4 = i5 + 46 | 0;
   12474          35 :     i7 = (HEAPU8[i4] | 0) + i6 | 0;
   12475          35 :     HEAP8[i4] = i7;
   12476          35 :     if ((i6 | 0) != 0 ? (i11 = i5 + 20 | 0, i14 = i5 + 40 | 0, i12 = HEAP32[(HEAP32[i5 >> 2] | 0) + 24 >> 2] | 0, i13 = HEAP32[HEAP32[(HEAP32[i5 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i12 + ((HEAP16[i13 + ((i7 & 255) - i6 + (HEAP32[i14 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i11 >> 2], i16 = i6 + -1 | 0, (i16 | 0) != 0) : 0) {
   12477          35 :      do {
   12478          35 :       HEAP32[i12 + ((HEAP16[i13 + ((HEAPU8[i4] | 0) - i16 + (HEAP32[i14 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i11 >> 2];
   12479          35 :       i16 = i16 + -1 | 0;
   12480          35 :      } while ((i16 | 0) != 0);
   12481          35 :     }
   12482          35 :     break;
   12483          35 :    }
   12484          35 :   case 264:
   12485          35 :    {
   12486          35 :     HEAP8[i24 + 10 | 0] = 1;
   12487          35 :     HEAP8[i24 + 8 | 0] = HEAP8[i9 + 46 | 0] | 0;
   12488          35 :     i29 = HEAP32[(HEAP32[i9 + 12 >> 2] | 0) + 64 >> 2] | 0;
   12489          35 :     HEAP16[i24 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
   12490          35 :     HEAP16[i24 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
   12491          35 :     HEAP8[i24 + 9 | 0] = 0;
   12492          35 :     i29 = i9 + 16 | 0;
   12493          35 :     HEAP32[i24 >> 2] = HEAP32[i29 >> 2];
   12494          35 :     HEAP32[i29 >> 2] = i24;
   12495          35 :     _luaX_next(i4);
   12496          35 :     if ((HEAP32[i5 >> 2] | 0) != 288) {
   12497          35 :      _error_expected(i4, 288);
   12498          35 :     }
   12499          35 :     i14 = i4 + 24 | 0;
   12500          35 :     i13 = HEAP32[i14 >> 2] | 0;
   12501          35 :     _luaX_next(i4);
   12502          35 :     i11 = HEAP32[i5 >> 2] | 0;
   12503          35 :     if ((i11 | 0) == 268 | (i11 | 0) == 44) {
   12504          35 :      i12 = HEAP32[i3 >> 2] | 0;
   12505          35 :      i11 = HEAPU8[i12 + 48 | 0] | 0;
   12506          35 :      _new_localvar(i4, _luaX_newstring(i4, 6744, 15) | 0);
   12507          35 :      _new_localvar(i4, _luaX_newstring(i4, 6760, 11) | 0);
   12508          35 :      _new_localvar(i4, _luaX_newstring(i4, 6776, 13) | 0);
   12509          35 :      _new_localvar(i4, i13);
   12510          35 :      i13 = HEAP32[i5 >> 2] | 0;
   12511          35 :      do {
   12512          35 :       if ((i13 | 0) == 44) {
   12513          35 :        i15 = 4;
   12514          35 :        while (1) {
   12515          35 :         _luaX_next(i4);
   12516          35 :         if ((HEAP32[i5 >> 2] | 0) != 288) {
   12517          35 :          i7 = 40;
   12518          35 :          break;
   12519          35 :         }
   12520          35 :         i13 = HEAP32[i14 >> 2] | 0;
   12521          35 :         _luaX_next(i4);
   12522          35 :         _new_localvar(i4, i13);
   12523          35 :         i13 = HEAP32[i5 >> 2] | 0;
   12524          35 :         if ((i13 | 0) == 44) {
   12525          35 :          i15 = i15 + 1 | 0;
   12526          35 :         } else {
   12527          35 :          i7 = 42;
   12528          35 :          break;
   12529          35 :         }
   12530          35 :        }
   12531          35 :        if ((i7 | 0) == 40) {
   12532          35 :         _error_expected(i4, 288);
   12533          35 :        } else if ((i7 | 0) == 42) {
   12534          35 :         i22 = i13;
   12535          35 :         i10 = i15 + -2 | 0;
   12536          35 :         break;
   12537          35 :        }
   12538          35 :       } else {
   12539          35 :        i22 = i13;
   12540          35 :        i10 = 1;
   12541          35 :       }
   12542          35 :      } while (0);
   12543          35 :      if ((i22 | 0) != 268) {
   12544          35 :       _error_expected(i4, 268);
   12545          35 :      }
   12546          35 :      _luaX_next(i4);
   12547          35 :      i13 = HEAP32[i19 >> 2] | 0;
   12548          35 :      _subexpr(i4, i8, 0) | 0;
   12549          35 :      if ((HEAP32[i5 >> 2] | 0) == 44) {
   12550          35 :       i14 = 1;
   12551          35 :       do {
   12552          35 :        _luaX_next(i4);
   12553          35 :        _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
   12554          35 :        _subexpr(i4, i8, 0) | 0;
   12555          35 :        i14 = i14 + 1 | 0;
   12556          35 :       } while ((HEAP32[i5 >> 2] | 0) == 44);
   12557          35 :      } else {
   12558          35 :       i14 = 1;
   12559          35 :      }
   12560          35 :      i5 = HEAP32[i3 >> 2] | 0;
   12561          35 :      i14 = 3 - i14 | 0;
   12562          35 :      i15 = HEAP32[i8 >> 2] | 0;
   12563          35 :      if ((i15 | 0) == 0) {
   12564          35 :       i7 = 51;
   12565          35 :      } else if ((i15 | 0) == 13 | (i15 | 0) == 12) {
   12566          35 :       i15 = i14 + 1 | 0;
   12567          35 :       i15 = (i15 | 0) < 0 ? 0 : i15;
   12568          35 :       _luaK_setreturns(i5, i8, i15);
   12569          35 :       if ((i15 | 0) > 1) {
   12570          35 :        _luaK_reserveregs(i5, i15 + -1 | 0);
   12571          35 :       }
   12572          35 :      } else {
   12573          35 :       _luaK_exp2nextreg(i5, i8);
   12574          35 :       i7 = 51;
   12575          35 :      }
   12576          35 :      if ((i7 | 0) == 51 ? (i14 | 0) > 0 : 0) {
   12577          35 :       i29 = HEAPU8[i5 + 48 | 0] | 0;
   12578          35 :       _luaK_reserveregs(i5, i14);
   12579          35 :       _luaK_nil(i5, i29, i14);
   12580          35 :      }
   12581          35 :      _luaK_checkstack(i12, 3);
   12582          35 :      _forbody(i4, i11, i13, i10, 0);
   12583          35 :     } else if ((i11 | 0) == 61) {
   12584          35 :      i11 = HEAP32[i3 >> 2] | 0;
   12585          35 :      i7 = i11 + 48 | 0;
   12586          35 :      i10 = HEAPU8[i7] | 0;
   12587          35 :      _new_localvar(i4, _luaX_newstring(i4, 6792, 11) | 0);
   12588          35 :      _new_localvar(i4, _luaX_newstring(i4, 6808, 11) | 0);
   12589          35 :      _new_localvar(i4, _luaX_newstring(i4, 6824, 10) | 0);
   12590          35 :      _new_localvar(i4, i13);
   12591          35 :      if ((HEAP32[i5 >> 2] | 0) != 61) {
   12592          35 :       _error_expected(i4, 61);
   12593          35 :      }
   12594          35 :      _luaX_next(i4);
   12595          35 :      _subexpr(i4, i8, 0) | 0;
   12596          35 :      _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
   12597          35 :      if ((HEAP32[i5 >> 2] | 0) != 44) {
   12598          35 :       _error_expected(i4, 44);
   12599          35 :      }
   12600          35 :      _luaX_next(i4);
   12601          35 :      _subexpr(i4, i8, 0) | 0;
   12602          35 :      _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
   12603          35 :      if ((HEAP32[i5 >> 2] | 0) == 44) {
   12604          35 :       _luaX_next(i4);
   12605          35 :       _subexpr(i4, i8, 0) | 0;
   12606          35 :       _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
   12607          35 :      } else {
   12608          35 :       i29 = HEAPU8[i7] | 0;
   12609          35 :       _luaK_codek(i11, i29, _luaK_numberK(i11, 1.0) | 0) | 0;
   12610          35 :       _luaK_reserveregs(i11, 1);
   12611          35 :      }
   12612          35 :      _forbody(i4, i10, i6, 1, 1);
   12613          35 :     } else {
   12614          35 :      _luaX_syntaxerror(i4, 6720);
   12615          35 :     }
   12616          35 :     _check_match(i4, 262, 264, i6);
   12617          35 :     _leaveblock(i9);
   12618          35 :     break;
   12619          35 :    }
   12620          35 :   case 265:
   12621          35 :    {
   12622          35 :     _luaX_next(i4);
   12623          35 :     if ((HEAP32[i5 >> 2] | 0) != 288) {
   12624          35 :      _error_expected(i4, 288);
   12625          35 :     }
   12626          35 :     i8 = HEAP32[i4 + 24 >> 2] | 0;
   12627          35 :     _luaX_next(i4);
   12628          35 :     i9 = HEAP32[i3 >> 2] | 0;
   12629          35 :     if ((_singlevaraux(i9, i8, i20, 1) | 0) == 0) {
   12630          35 :      _singlevaraux(i9, HEAP32[i4 + 72 >> 2] | 0, i20, 1) | 0;
   12631          35 :      i29 = _luaK_stringK(HEAP32[i3 >> 2] | 0, i8) | 0;
   12632          35 :      HEAP32[i25 + 16 >> 2] = -1;
   12633          35 :      HEAP32[i25 + 20 >> 2] = -1;
   12634          35 :      HEAP32[i25 >> 2] = 4;
   12635          35 :      HEAP32[i25 + 8 >> 2] = i29;
   12636          35 :      _luaK_indexed(i9, i20, i25);
   12637          35 :     }
   12638          35 :     while (1) {
   12639          35 :      i8 = HEAP32[i5 >> 2] | 0;
   12640          35 :      if ((i8 | 0) == 58) {
   12641          35 :       i7 = 70;
   12642          35 :       break;
   12643          35 :      } else if ((i8 | 0) != 46) {
   12644          35 :       i5 = 0;
   12645          35 :       break;
   12646          35 :      }
   12647          35 :      _fieldsel(i4, i20);
   12648          35 :     }
   12649          35 :     if ((i7 | 0) == 70) {
   12650          35 :      _fieldsel(i4, i20);
   12651          35 :      i5 = 1;
   12652          35 :     }
   12653          35 :     _body(i4, i21, i5, i6);
   12654          35 :     _luaK_storevar(HEAP32[i3 >> 2] | 0, i20, i21);
   12655          35 :     _luaK_fixline(HEAP32[i3 >> 2] | 0, i6);
   12656          35 :     break;
   12657          35 :    }
   12658          35 :   case 278:
   12659          35 :    {
   12660          35 :     _luaX_next(i4);
   12661          35 :     i7 = _luaK_getlabel(i9) | 0;
   12662          35 :     _subexpr(i4, i20, 0) | 0;
   12663          35 :     if ((HEAP32[i20 >> 2] | 0) == 1) {
   12664          35 :      HEAP32[i20 >> 2] = 3;
   12665          35 :     }
   12666          35 :     _luaK_goiftrue(HEAP32[i3 >> 2] | 0, i20);
   12667          35 :     i8 = HEAP32[i20 + 20 >> 2] | 0;
   12668          35 :     HEAP8[i21 + 10 | 0] = 1;
   12669          35 :     HEAP8[i21 + 8 | 0] = HEAP8[i9 + 46 | 0] | 0;
   12670          35 :     i29 = HEAP32[(HEAP32[i9 + 12 >> 2] | 0) + 64 >> 2] | 0;
   12671          35 :     HEAP16[i21 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
   12672          35 :     HEAP16[i21 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
   12673          35 :     HEAP8[i21 + 9 | 0] = 0;
   12674          35 :     i29 = i9 + 16 | 0;
   12675          35 :     HEAP32[i21 >> 2] = HEAP32[i29 >> 2];
   12676          35 :     HEAP32[i29 >> 2] = i21;
   12677          35 :     if ((HEAP32[i5 >> 2] | 0) != 259) {
   12678          35 :      _error_expected(i4, 259);
   12679          35 :     }
   12680          35 :     _luaX_next(i4);
   12681          35 :     i10 = HEAP32[i3 >> 2] | 0;
   12682          35 :     HEAP8[i20 + 10 | 0] = 0;
   12683          35 :     HEAP8[i20 + 8 | 0] = HEAP8[i10 + 46 | 0] | 0;
   12684          35 :     i29 = HEAP32[(HEAP32[i10 + 12 >> 2] | 0) + 64 >> 2] | 0;
   12685          35 :     HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
   12686          35 :     HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
   12687          35 :     HEAP8[i20 + 9 | 0] = 0;
   12688          35 :     i29 = i10 + 16 | 0;
   12689          35 :     HEAP32[i20 >> 2] = HEAP32[i29 >> 2];
   12690          35 :     HEAP32[i29 >> 2] = i20;
   12691          35 :     L119 : do {
   12692          35 :      i11 = HEAP32[i5 >> 2] | 0;
   12693          35 :      switch (i11 | 0) {
   12694          35 :      case 277:
   12695          35 :      case 286:
   12696          35 :      case 262:
   12697          35 :      case 261:
   12698          35 :      case 260:
   12699          35 :       {
   12700          35 :        break L119;
   12701          35 :       }
   12702          35 :      default:
   12703          35 :       {}
   12704          35 :      }
   12705          35 :      _statement(i4);
   12706          35 :     } while ((i11 | 0) != 274);
   12707          35 :     _leaveblock(i10);
   12708          35 :     _luaK_patchlist(i9, _luaK_jump(i9) | 0, i7);
   12709          35 :     _check_match(i4, 262, 278, i6);
   12710          35 :     _leaveblock(i9);
   12711          35 :     _luaK_patchtohere(i9, i8);
   12712          35 :     break;
   12713          35 :    }
   12714          35 :   case 273:
   12715          35 :    {
   12716          35 :     i7 = _luaK_getlabel(i9) | 0;
   12717          35 :     HEAP8[i24 + 10 | 0] = 1;
   12718          35 :     i28 = i9 + 46 | 0;
   12719          35 :     HEAP8[i24 + 8 | 0] = HEAP8[i28] | 0;
   12720          35 :     i11 = i9 + 12 | 0;
   12721          35 :     i29 = HEAP32[(HEAP32[i11 >> 2] | 0) + 64 >> 2] | 0;
   12722          35 :     HEAP16[i24 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
   12723          35 :     HEAP16[i24 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
   12724          35 :     HEAP8[i24 + 9 | 0] = 0;
   12725          35 :     i29 = i9 + 16 | 0;
   12726          35 :     HEAP32[i24 >> 2] = HEAP32[i29 >> 2];
   12727          35 :     HEAP32[i29 >> 2] = i24;
   12728          35 :     HEAP8[i15 + 10 | 0] = 0;
   12729          35 :     i10 = i15 + 8 | 0;
   12730          35 :     HEAP8[i10] = HEAP8[i28] | 0;
   12731          35 :     i11 = HEAP32[(HEAP32[i11 >> 2] | 0) + 64 >> 2] | 0;
   12732          35 :     HEAP16[i15 + 4 >> 1] = HEAP32[i11 + 28 >> 2];
   12733          35 :     HEAP16[i15 + 6 >> 1] = HEAP32[i11 + 16 >> 2];
   12734          35 :     i11 = i15 + 9 | 0;
   12735          35 :     HEAP8[i11] = 0;
   12736          35 :     HEAP32[i15 >> 2] = HEAP32[i29 >> 2];
   12737          35 :     HEAP32[i29 >> 2] = i15;
   12738          35 :     _luaX_next(i4);
   12739          35 :     L124 : do {
   12740          35 :      i12 = HEAP32[i5 >> 2] | 0;
   12741          35 :      switch (i12 | 0) {
   12742          35 :      case 277:
   12743          35 :      case 286:
   12744          35 :      case 262:
   12745          35 :      case 261:
   12746          35 :      case 260:
   12747          35 :       {
   12748          35 :        break L124;
   12749          35 :       }
   12750          35 :      default:
   12751          35 :       {}
   12752          35 :      }
   12753          35 :      _statement(i4);
   12754          35 :     } while ((i12 | 0) != 274);
   12755          35 :     _check_match(i4, 277, 273, i6);
   12756          35 :     _subexpr(i4, i8, 0) | 0;
   12757          35 :     if ((HEAP32[i8 >> 2] | 0) == 1) {
   12758          35 :      HEAP32[i8 >> 2] = 3;
   12759          35 :     }
   12760          35 :     _luaK_goiftrue(HEAP32[i3 >> 2] | 0, i8);
   12761          35 :     i4 = HEAP32[i8 + 20 >> 2] | 0;
   12762          35 :     if ((HEAP8[i11] | 0) != 0) {
   12763          35 :      _luaK_patchclose(i9, i4, HEAPU8[i10] | 0);
   12764          35 :     }
   12765          35 :     _leaveblock(i9);
   12766          35 :     _luaK_patchlist(i9, i4, i7);
   12767          35 :     _leaveblock(i9);
   12768          35 :     break;
   12769          35 :    }
   12770          35 :   case 285:
   12771          35 :    {
   12772          35 :     _luaX_next(i4);
   12773          35 :     if ((HEAP32[i5 >> 2] | 0) != 288) {
   12774          35 :      _error_expected(i4, 288);
   12775          35 :     }
   12776          35 :     i10 = HEAP32[i4 + 24 >> 2] | 0;
   12777          35 :     _luaX_next(i4);
   12778          35 :     i15 = HEAP32[i3 >> 2] | 0;
   12779          35 :     i9 = i4 + 64 | 0;
   12780          35 :     i14 = HEAP32[i9 >> 2] | 0;
   12781          35 :     i12 = i14 + 24 | 0;
   12782          35 :     i11 = i15 + 16 | 0;
   12783          35 :     i16 = HEAP16[(HEAP32[i11 >> 2] | 0) + 4 >> 1] | 0;
   12784          35 :     i13 = i14 + 28 | 0;
   12785          35 :     L138 : do {
   12786          35 :      if ((i16 | 0) < (HEAP32[i13 >> 2] | 0)) {
   12787          35 :       while (1) {
   12788          35 :        i17 = i16 + 1 | 0;
   12789          35 :        if ((_luaS_eqstr(i10, HEAP32[(HEAP32[i12 >> 2] | 0) + (i16 << 4) >> 2] | 0) | 0) != 0) {
   12790          35 :         break;
   12791          35 :        }
   12792          35 :        if ((i17 | 0) < (HEAP32[i13 >> 2] | 0)) {
   12793          35 :         i16 = i17;
   12794          35 :        } else {
   12795          35 :         break L138;
   12796          35 :        }
   12797          35 :       }
   12798          35 :       i28 = i15 + 12 | 0;
   12799          35 :       i29 = HEAP32[(HEAP32[i28 >> 2] | 0) + 52 >> 2] | 0;
   12800          35 :       i27 = HEAP32[(HEAP32[i12 >> 2] | 0) + (i16 << 4) + 8 >> 2] | 0;
   12801          35 :       HEAP32[i8 >> 2] = i10 + 16;
   12802          35 :       HEAP32[i8 + 4 >> 2] = i27;
   12803          35 :       i29 = _luaO_pushfstring(i29, 6680, i8) | 0;
   12804          35 :       _semerror(HEAP32[i28 >> 2] | 0, i29);
   12805          35 :      }
   12806          35 :     } while (0);
   12807          35 :     if ((HEAP32[i5 >> 2] | 0) != 285) {
   12808          35 :      _error_expected(i4, 285);
   12809          35 :     }
   12810          35 :     _luaX_next(i4);
   12811          35 :     i8 = HEAP32[i15 + 20 >> 2] | 0;
   12812          35 :     i15 = HEAP32[i13 >> 2] | 0;
   12813          35 :     i14 = i14 + 32 | 0;
   12814          35 :     if ((i15 | 0) < (HEAP32[i14 >> 2] | 0)) {
   12815          35 :      i14 = HEAP32[i12 >> 2] | 0;
   12816          35 :     } else {
   12817          35 :      i14 = _luaM_growaux_(HEAP32[i1 >> 2] | 0, HEAP32[i12 >> 2] | 0, i14, 16, 32767, 6312) | 0;
   12818          35 :      HEAP32[i12 >> 2] = i14;
   12819          35 :     }
   12820          35 :     HEAP32[i14 + (i15 << 4) >> 2] = i10;
   12821          35 :     i29 = HEAP32[i12 >> 2] | 0;
   12822          35 :     HEAP32[i29 + (i15 << 4) + 8 >> 2] = i6;
   12823          35 :     HEAP8[i29 + (i15 << 4) + 12 | 0] = HEAP8[(HEAP32[i3 >> 2] | 0) + 46 | 0] | 0;
   12824          35 :     HEAP32[(HEAP32[i12 >> 2] | 0) + (i15 << 4) + 4 >> 2] = i8;
   12825          35 :     HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1;
   12826          35 :     L152 : while (1) {
   12827          35 :      switch (HEAP32[i5 >> 2] | 0) {
   12828          35 :      case 285:
   12829          35 :      case 59:
   12830          35 :       {
   12831          35 :        break;
   12832          35 :       }
   12833          35 :      case 286:
   12834          35 :      case 262:
   12835          35 :      case 261:
   12836          35 :      case 260:
   12837          35 :       {
   12838          35 :        i7 = 108;
   12839          35 :        break L152;
   12840          35 :       }
   12841          35 :      default:
   12842          35 :       {
   12843          35 :        break L152;
   12844          35 :       }
   12845          35 :      }
   12846          35 :      _statement(i4);
   12847          35 :     }
   12848          35 :     if ((i7 | 0) == 108) {
   12849          35 :      HEAP8[(HEAP32[i12 >> 2] | 0) + (i15 << 4) + 12 | 0] = HEAP8[(HEAP32[i11 >> 2] | 0) + 8 | 0] | 0;
   12850          35 :     }
   12851          35 :     i5 = (HEAP32[i12 >> 2] | 0) + (i15 << 4) | 0;
   12852          35 :     i8 = HEAP32[i9 >> 2] | 0;
   12853          35 :     i7 = HEAP16[(HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0) + 6 >> 1] | 0;
   12854          35 :     i6 = i8 + 16 | 0;
   12855          35 :     if ((i7 | 0) < (HEAP32[i6 >> 2] | 0)) {
   12856          35 :      i8 = i8 + 12 | 0;
   12857          35 :      do {
   12858          35 :       while (1) {
   12859          35 :        if ((_luaS_eqstr(HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 4) >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0) == 0) {
   12860          35 :         break;
   12861          35 :        }
   12862          35 :        _closegoto(i4, i7, i5);
   12863          35 :        if ((i7 | 0) >= (HEAP32[i6 >> 2] | 0)) {
   12864          35 :         break L8;
   12865          35 :        }
   12866          35 :       }
   12867          35 :       i7 = i7 + 1 | 0;
   12868          35 :      } while ((i7 | 0) < (HEAP32[i6 >> 2] | 0));
   12869          35 :     }
   12870          35 :     break;
   12871          35 :    }
   12872          35 :   case 274:
   12873          35 :    {
   12874          35 :     _luaX_next(i4);
   12875          35 :     i6 = HEAP32[i3 >> 2] | 0;
   12876          35 :     L166 : do {
   12877          35 :      switch (HEAP32[i5 >> 2] | 0) {
   12878          35 :      case 59:
   12879          35 :      case 277:
   12880          35 :      case 286:
   12881          35 :      case 262:
   12882          35 :      case 261:
   12883          35 :      case 260:
   12884          35 :       {
   12885          35 :        i8 = 0;
   12886          35 :        i7 = 0;
   12887          35 :        break;
   12888          35 :       }
   12889          35 :      default:
   12890          35 :       {
   12891          35 :        _subexpr(i4, i24, 0) | 0;
   12892          35 :        if ((HEAP32[i5 >> 2] | 0) == 44) {
   12893          35 :         i7 = 1;
   12894          35 :         do {
   12895          35 :          _luaX_next(i4);
   12896          35 :          _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i24);
   12897          35 :          _subexpr(i4, i24, 0) | 0;
   12898          35 :          i7 = i7 + 1 | 0;
   12899          35 :         } while ((HEAP32[i5 >> 2] | 0) == 44);
   12900          35 :        } else {
   12901          35 :         i7 = 1;
   12902          35 :        }
   12903          35 :        if (!(((HEAP32[i24 >> 2] | 0) + -12 | 0) >>> 0 < 2)) {
   12904          35 :         if ((i7 | 0) == 1) {
   12905          35 :          i8 = _luaK_exp2anyreg(i6, i24) | 0;
   12906          35 :          i7 = 1;
   12907          35 :          break L166;
   12908          35 :         } else {
   12909          35 :          _luaK_exp2nextreg(i6, i24);
   12910          35 :          i8 = HEAPU8[i6 + 46 | 0] | 0;
   12911          35 :          break L166;
   12912          35 :         }
   12913          35 :        } else {
   12914          35 :         _luaK_setreturns(i6, i24, -1);
   12915          35 :         if ((HEAP32[i24 >> 2] | 0) == 12 & (i7 | 0) == 1) {
   12916          35 :          i29 = (HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i24 + 8 >> 2] << 2) | 0;
   12917          35 :          HEAP32[i29 >> 2] = HEAP32[i29 >> 2] & -64 | 30;
   12918          35 :         }
   12919          35 :         i8 = HEAPU8[i6 + 46 | 0] | 0;
   12920          35 :         i7 = -1;
   12921          35 :         break L166;
   12922          35 :        }
   12923          35 :       }
   12924          35 :      }
   12925          35 :     } while (0);
   12926          35 :     _luaK_ret(i6, i8, i7);
   12927          35 :     if ((HEAP32[i5 >> 2] | 0) == 59) {
   12928          35 :      _luaX_next(i4);
   12929          35 :     }
   12930          35 :     break;
   12931          35 :    }
   12932          35 :   case 266:
   12933          35 :   case 258:
   12934          35 :    {
   12935          35 :     i6 = _luaK_jump(i9) | 0;
   12936          35 :     i7 = HEAP32[i19 >> 2] | 0;
   12937          35 :     i29 = (HEAP32[i5 >> 2] | 0) == 266;
   12938          35 :     _luaX_next(i4);
   12939          35 :     do {
   12940          35 :      if (i29) {
   12941          35 :       if ((HEAP32[i5 >> 2] | 0) == 288) {
   12942          35 :        i23 = HEAP32[i4 + 24 >> 2] | 0;
   12943          35 :        _luaX_next(i4);
   12944          35 :        break;
   12945          35 :       } else {
   12946          35 :        _error_expected(i4, 288);
   12947          35 :       }
   12948          35 :      } else {
   12949          35 :       i23 = _luaS_new(HEAP32[i1 >> 2] | 0, 6304) | 0;
   12950          35 :      }
   12951          35 :     } while (0);
   12952          35 :     i10 = HEAP32[i4 + 64 >> 2] | 0;
   12953          35 :     i9 = i10 + 12 | 0;
   12954          35 :     i5 = i10 + 16 | 0;
   12955          35 :     i8 = HEAP32[i5 >> 2] | 0;
   12956          35 :     i10 = i10 + 20 | 0;
   12957          35 :     if ((i8 | 0) < (HEAP32[i10 >> 2] | 0)) {
   12958          35 :      i10 = HEAP32[i9 >> 2] | 0;
   12959          35 :     } else {
   12960          35 :      i10 = _luaM_growaux_(HEAP32[i1 >> 2] | 0, HEAP32[i9 >> 2] | 0, i10, 16, 32767, 6312) | 0;
   12961          35 :      HEAP32[i9 >> 2] = i10;
   12962          35 :     }
   12963          35 :     HEAP32[i10 + (i8 << 4) >> 2] = i23;
   12964          35 :     i29 = HEAP32[i9 >> 2] | 0;
   12965          35 :     HEAP32[i29 + (i8 << 4) + 8 >> 2] = i7;
   12966          35 :     HEAP8[i29 + (i8 << 4) + 12 | 0] = HEAP8[(HEAP32[i3 >> 2] | 0) + 46 | 0] | 0;
   12967          35 :     HEAP32[(HEAP32[i9 >> 2] | 0) + (i8 << 4) + 4 >> 2] = i6;
   12968          35 :     HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
   12969          35 :     _findlabel(i4, i8) | 0;
   12970          35 :     break;
   12971          35 :    }
   12972          35 :   default:
   12973          35 :    {
   12974          35 :     i6 = i8 + 8 | 0;
   12975          35 :     _suffixedexp(i4, i6);
   12976          35 :     i29 = HEAP32[i5 >> 2] | 0;
   12977          35 :     if ((i29 | 0) == 44 | (i29 | 0) == 61) {
   12978          35 :      HEAP32[i8 >> 2] = 0;
   12979          35 :      _assignment(i4, i8, 1);
   12980          35 :      break L8;
   12981          35 :     }
   12982          35 :     if ((HEAP32[i6 >> 2] | 0) == 12) {
   12983          35 :      i29 = (HEAP32[(HEAP32[i9 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i8 + 16 >> 2] << 2) | 0;
   12984          35 :      HEAP32[i29 >> 2] = HEAP32[i29 >> 2] & -8372225 | 16384;
   12985          35 :      break L8;
   12986          35 :     } else {
   12987          35 :      _luaX_syntaxerror(i4, 6344);
   12988          35 :     }
   12989          35 :    }
   12990          35 :   }
   12991          35 :  } while (0);
   12992          35 :  i29 = HEAP32[i3 >> 2] | 0;
   12993          35 :  HEAP8[i29 + 48 | 0] = HEAP8[i29 + 46 | 0] | 0;
   12994          35 :  i29 = (HEAP32[i1 >> 2] | 0) + 38 | 0;
   12995          35 :  HEAP16[i29 >> 1] = (HEAP16[i29 >> 1] | 0) + -1 << 16 >> 16;
   12996          35 :  STACKTOP = i2;
   12997          35 :  return;
   12998          35 : }
   12999           1 : function _match(i1, i12, i11) {
   13000           0 :  i1 = i1 | 0;
   13001           0 :  i12 = i12 | 0;
   13002           0 :  i11 = i11 | 0;
   13003           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
   13004           0 :  i2 = STACKTOP;
   13005           0 :  STACKTOP = STACKTOP + 16 | 0;
   13006           0 :  i8 = i2;
   13007           0 :  i32 = HEAP32[i1 >> 2] | 0;
   13008           0 :  HEAP32[i1 >> 2] = i32 + -1;
   13009           0 :  if ((i32 | 0) == 0) {
   13010           0 :   _luaL_error(HEAP32[i1 + 16 >> 2] | 0, 7272, i8) | 0;
   13011           0 :  }
   13012           0 :  i14 = i1 + 12 | 0;
   13013           0 :  i22 = HEAP32[i14 >> 2] | 0;
   13014           0 :  L4 : do {
   13015           0 :   if ((i22 | 0) != (i11 | 0)) {
   13016           0 :    i3 = i1 + 8 | 0;
   13017           0 :    i9 = i1 + 16 | 0;
   13018           0 :    i16 = i1 + 4 | 0;
   13019           0 :    i10 = i1 + 20 | 0;
   13020           0 :    L6 : while (1) {
   13021           0 :     i19 = i12 + 1 | 0;
   13022           0 :     i20 = i12 + -1 | 0;
   13023           0 :     L8 : while (1) {
   13024           0 :      i23 = HEAP8[i11] | 0;
   13025           0 :      i21 = i23 << 24 >> 24;
   13026           0 :      L10 : do {
   13027           0 :       if ((i21 | 0) == 36) {
   13028           0 :        i7 = i11 + 1 | 0;
   13029           0 :        if ((i7 | 0) == (i22 | 0)) {
   13030           0 :         i7 = 23;
   13031           0 :         break L6;
   13032           0 :        } else {
   13033           0 :         i22 = i7;
   13034           0 :         i21 = i7;
   13035           0 :         i7 = 89;
   13036           0 :        }
   13037           0 :       } else if ((i21 | 0) == 37) {
   13038           0 :        i21 = i11 + 1 | 0;
   13039           0 :        i23 = HEAP8[i21] | 0;
   13040           0 :        switch (i23 << 24 >> 24 | 0) {
   13041           0 :        case 57:
   13042           0 :        case 56:
   13043           0 :        case 55:
   13044           0 :        case 54:
   13045           0 :        case 53:
   13046           0 :        case 52:
   13047           0 :        case 51:
   13048           0 :        case 50:
   13049           0 :        case 49:
   13050           0 :        case 48:
   13051           0 :         {
   13052           0 :          i7 = 69;
   13053           0 :          break L8;
   13054           0 :         }
   13055           0 :        case 98:
   13056           0 :         {
   13057           0 :          i7 = 25;
   13058           0 :          break L8;
   13059           0 :         }
   13060           0 :        case 102:
   13061           0 :         {
   13062           0 :          break;
   13063           0 :         }
   13064           0 :        default:
   13065           0 :         {
   13066           0 :          if ((i21 | 0) == (i22 | 0)) {
   13067           0 :           _luaL_error(HEAP32[i9 >> 2] | 0, 7368, i8) | 0;
   13068           0 :          }
   13069           0 :          i22 = i11 + 2 | 0;
   13070           0 :          i7 = 89;
   13071           0 :          break L10;
   13072           0 :         }
   13073           0 :        }
   13074           0 :        i22 = i11 + 2 | 0;
   13075           0 :        if ((HEAP8[i22] | 0) == 91) {
   13076           0 :         i21 = 91;
   13077           0 :        } else {
   13078           0 :         _luaL_error(HEAP32[i9 >> 2] | 0, 7296, i8) | 0;
   13079           0 :         i21 = HEAP8[i22] | 0;
   13080           0 :        }
   13081           0 :        i23 = i11 + 3 | 0;
   13082           0 :        i21 = i21 << 24 >> 24;
   13083           0 :        if ((i21 | 0) == 91) {
   13084           0 :         i21 = (HEAP8[i23] | 0) == 94 ? i11 + 4 | 0 : i23;
   13085           0 :         while (1) {
   13086           0 :          if ((i21 | 0) == (HEAP32[i14 >> 2] | 0)) {
   13087           0 :           _luaL_error(HEAP32[i9 >> 2] | 0, 7408, i8) | 0;
   13088           0 :          }
   13089           0 :          i11 = i21 + 1 | 0;
   13090           0 :          if ((HEAP8[i21] | 0) == 37) {
   13091           0 :           i11 = i11 >>> 0 < (HEAP32[i14 >> 2] | 0) >>> 0 ? i21 + 2 | 0 : i11;
   13092           0 :          }
   13093           0 :          if ((HEAP8[i11] | 0) == 93) {
   13094           0 :           break;
   13095           0 :          } else {
   13096           0 :           i21 = i11;
   13097           0 :          }
   13098           0 :         }
   13099           0 :         i11 = i11 + 1 | 0;
   13100           0 :        } else if ((i21 | 0) == 37) {
   13101           0 :         if ((i23 | 0) == (HEAP32[i14 >> 2] | 0)) {
   13102           0 :          _luaL_error(HEAP32[i9 >> 2] | 0, 7368, i8) | 0;
   13103           0 :         }
   13104           0 :         i11 = i11 + 4 | 0;
   13105           0 :        } else {
   13106           0 :         i11 = i23;
   13107           0 :        }
   13108           0 :        if ((i12 | 0) == (HEAP32[i16 >> 2] | 0)) {
   13109           0 :         i25 = 0;
   13110           0 :        } else {
   13111           0 :         i25 = HEAP8[i20] | 0;
   13112           0 :        }
   13113           0 :        i24 = i25 & 255;
   13114           0 :        i21 = i11 + -1 | 0;
   13115           0 :        i26 = (HEAP8[i23] | 0) == 94;
   13116           0 :        i28 = i26 ? i23 : i22;
   13117           0 :        i27 = i26 & 1;
   13118           0 :        i26 = i27 ^ 1;
   13119           0 :        i30 = i28 + 1 | 0;
   13120           0 :        L41 : do {
   13121           0 :         if (i30 >>> 0 < i21 >>> 0) {
   13122           0 :          while (1) {
   13123           0 :           i32 = HEAP8[i30] | 0;
   13124           0 :           i29 = i28 + 2 | 0;
   13125           0 :           i31 = HEAP8[i29] | 0;
   13126           0 :           do {
   13127           0 :            if (i32 << 24 >> 24 == 37) {
   13128           0 :             if ((_match_class(i24, i31 & 255) | 0) == 0) {
   13129           0 :              i28 = i29;
   13130           0 :             } else {
   13131           0 :              break L41;
   13132           0 :             }
   13133           0 :            } else {
   13134           0 :             if (i31 << 24 >> 24 == 45 ? (i18 = i28 + 3 | 0, i18 >>> 0 < i21 >>> 0) : 0) {
   13135           0 :              if ((i32 & 255) > (i25 & 255)) {
   13136           0 :               i28 = i18;
   13137           0 :               break;
   13138           0 :              }
   13139           0 :              if ((HEAPU8[i18] | 0) < (i25 & 255)) {
   13140           0 :               i28 = i18;
   13141           0 :               break;
   13142           0 :              } else {
   13143           0 :               break L41;
   13144           0 :              }
   13145           0 :             }
   13146           0 :             if (i32 << 24 >> 24 == i25 << 24 >> 24) {
   13147           0 :              break L41;
   13148           0 :             } else {
   13149           0 :              i28 = i30;
   13150           0 :             }
   13151           0 :            }
   13152           0 :           } while (0);
   13153           0 :           i30 = i28 + 1 | 0;
   13154           0 :           if (!(i30 >>> 0 < i21 >>> 0)) {
   13155           0 :            i26 = i27;
   13156           0 :            break;
   13157           0 :           }
   13158           0 :          }
   13159           0 :         } else {
   13160           0 :          i26 = i27;
   13161           0 :         }
   13162           0 :        } while (0);
   13163           0 :        if ((i26 | 0) != 0) {
   13164           0 :         i12 = 0;
   13165           0 :         break L4;
   13166           0 :        }
   13167           0 :        i24 = HEAP8[i12] | 0;
   13168           0 :        i25 = i24 & 255;
   13169           0 :        i27 = (HEAP8[i23] | 0) == 94;
   13170           0 :        i26 = i27 ? i23 : i22;
   13171           0 :        i22 = i27 & 1;
   13172           0 :        i23 = i22 ^ 1;
   13173           0 :        i30 = i26 + 1 | 0;
   13174           0 :        L55 : do {
   13175           0 :         if (i30 >>> 0 < i21 >>> 0) {
   13176           0 :          do {
   13177           0 :           i29 = HEAP8[i30] | 0;
   13178           0 :           i28 = i26 + 2 | 0;
   13179           0 :           i27 = HEAP8[i28] | 0;
   13180           0 :           do {
   13181           0 :            if (i29 << 24 >> 24 == 37) {
   13182           0 :             if ((_match_class(i25, i27 & 255) | 0) == 0) {
   13183           0 :              i26 = i28;
   13184           0 :             } else {
   13185           0 :              i22 = i23;
   13186           0 :              break L55;
   13187           0 :             }
   13188           0 :            } else {
   13189           0 :             if (i27 << 24 >> 24 == 45 ? (i17 = i26 + 3 | 0, i17 >>> 0 < i21 >>> 0) : 0) {
   13190           0 :              if ((i29 & 255) > (i24 & 255)) {
   13191           0 :               i26 = i17;
   13192           0 :               break;
   13193           0 :              }
   13194           0 :              if ((HEAPU8[i17] | 0) < (i24 & 255)) {
   13195           0 :               i26 = i17;
   13196           0 :               break;
   13197           0 :              } else {
   13198           0 :               i22 = i23;
   13199           0 :               break L55;
   13200           0 :              }
   13201           0 :             }
   13202           0 :             if (i29 << 24 >> 24 == i24 << 24 >> 24) {
   13203           0 :              i22 = i23;
   13204           0 :              break L55;
   13205           0 :             } else {
   13206           0 :              i26 = i30;
   13207           0 :             }
   13208           0 :            }
   13209           0 :           } while (0);
   13210           0 :           i30 = i26 + 1 | 0;
   13211           0 :          } while (i30 >>> 0 < i21 >>> 0);
   13212           0 :         }
   13213           0 :        } while (0);
   13214           0 :        if ((i22 | 0) == 0) {
   13215           0 :         i12 = 0;
   13216           0 :         break L4;
   13217           0 :        }
   13218           0 :       } else if ((i21 | 0) == 40) {
   13219           0 :        i7 = 7;
   13220           0 :        break L6;
   13221           0 :       } else if ((i21 | 0) != 41) {
   13222           0 :        i21 = i11 + 1 | 0;
   13223           0 :        if (i23 << 24 >> 24 == 91) {
   13224           0 :         i7 = (HEAP8[i21] | 0) == 94 ? i11 + 2 | 0 : i21;
   13225           0 :         while (1) {
   13226           0 :          if ((i7 | 0) == (i22 | 0)) {
   13227           0 :           _luaL_error(HEAP32[i9 >> 2] | 0, 7408, i8) | 0;
   13228           0 :          }
   13229           0 :          i22 = i7 + 1 | 0;
   13230           0 :          if ((HEAP8[i7] | 0) == 37) {
   13231           0 :           i7 = i22 >>> 0 < (HEAP32[i14 >> 2] | 0) >>> 0 ? i7 + 2 | 0 : i22;
   13232           0 :          } else {
   13233           0 :           i7 = i22;
   13234           0 :          }
   13235           0 :          if ((HEAP8[i7] | 0) == 93) {
   13236           0 :           break;
   13237           0 :          }
   13238           0 :          i22 = HEAP32[i14 >> 2] | 0;
   13239           0 :         }
   13240           0 :         i22 = i7 + 1 | 0;
   13241           0 :         i7 = 89;
   13242           0 :        } else {
   13243           0 :         i22 = i21;
   13244           0 :         i7 = 89;
   13245           0 :        }
   13246           0 :       } else {
   13247           0 :        i7 = 16;
   13248           0 :        break L6;
   13249           0 :       }
   13250           0 :      } while (0);
   13251           0 :      L80 : do {
   13252           0 :       if ((i7 | 0) == 89) {
   13253           0 :        i7 = 0;
   13254           0 :        do {
   13255           0 :         if ((HEAP32[i3 >> 2] | 0) >>> 0 > i12 >>> 0) {
   13256           0 :          i23 = HEAP8[i12] | 0;
   13257           0 :          i24 = i23 & 255;
   13258           0 :          i26 = HEAP8[i11] | 0;
   13259           0 :          i25 = i26 << 24 >> 24;
   13260           0 :          L85 : do {
   13261           0 :           if ((i25 | 0) == 46) {
   13262           0 :            i23 = HEAP8[i22] | 0;
   13263           0 :           } else if ((i25 | 0) == 37) {
   13264           0 :            i25 = _match_class(i24, HEAPU8[i21] | 0) | 0;
   13265           0 :            i7 = 104;
   13266           0 :           } else if ((i25 | 0) == 91) {
   13267           0 :            i7 = i22 + -1 | 0;
   13268           0 :            i25 = (HEAP8[i21] | 0) == 94;
   13269           0 :            i27 = i25 ? i21 : i11;
   13270           0 :            i26 = i25 & 1;
   13271           0 :            i25 = i26 ^ 1;
   13272           0 :            i30 = i27 + 1 | 0;
   13273           0 :            if (i30 >>> 0 < i7 >>> 0) {
   13274           0 :             while (1) {
   13275           0 :              i31 = HEAP8[i30] | 0;
   13276           0 :              i29 = i27 + 2 | 0;
   13277           0 :              i28 = HEAP8[i29] | 0;
   13278           0 :              do {
   13279           0 :               if (i31 << 24 >> 24 == 37) {
   13280           0 :                if ((_match_class(i24, i28 & 255) | 0) == 0) {
   13281           0 :                 i27 = i29;
   13282           0 :                } else {
   13283           0 :                 i7 = 104;
   13284           0 :                 break L85;
   13285           0 :                }
   13286           0 :               } else {
   13287           0 :                if (i28 << 24 >> 24 == 45 ? (i13 = i27 + 3 | 0, i13 >>> 0 < i7 >>> 0) : 0) {
   13288           0 :                 if ((i31 & 255) > (i23 & 255)) {
   13289           0 :                  i27 = i13;
   13290           0 :                  break;
   13291           0 :                 }
   13292           0 :                 if ((HEAPU8[i13] | 0) < (i23 & 255)) {
   13293           0 :                  i27 = i13;
   13294           0 :                  break;
   13295           0 :                 } else {
   13296           0 :                  i7 = 104;
   13297           0 :                  break L85;
   13298           0 :                 }
   13299           0 :                }
   13300           0 :                if (i31 << 24 >> 24 == i23 << 24 >> 24) {
   13301           0 :                 i7 = 104;
   13302           0 :                 break L85;
   13303           0 :                } else {
   13304           0 :                 i27 = i30;
   13305           0 :                }
   13306           0 :               }
   13307           0 :              } while (0);
   13308           0 :              i30 = i27 + 1 | 0;
   13309           0 :              if (!(i30 >>> 0 < i7 >>> 0)) {
   13310           0 :               i25 = i26;
   13311           0 :               i7 = 104;
   13312           0 :               break;
   13313           0 :              }
   13314           0 :             }
   13315           0 :            } else {
   13316           0 :             i25 = i26;
   13317           0 :             i7 = 104;
   13318           0 :            }
   13319           0 :           } else {
   13320           0 :            i25 = i26 << 24 >> 24 == i23 << 24 >> 24 | 0;
   13321           0 :            i7 = 104;
   13322           0 :           }
   13323           0 :          } while (0);
   13324           0 :          if ((i7 | 0) == 104) {
   13325           0 :           i7 = 0;
   13326           0 :           i23 = HEAP8[i22] | 0;
   13327           0 :           if ((i25 | 0) == 0) {
   13328           0 :            break;
   13329           0 :           }
   13330           0 :          }
   13331           0 :          i23 = i23 << 24 >> 24;
   13332           0 :          if ((i23 | 0) == 45) {
   13333           0 :           i7 = 109;
   13334           0 :           break L6;
   13335           0 :          } else if ((i23 | 0) == 42) {
   13336           0 :           i7 = 112;
   13337           0 :           break L6;
   13338           0 :          } else if ((i23 | 0) == 43) {
   13339           0 :           break L6;
   13340           0 :          } else if ((i23 | 0) != 63) {
   13341           0 :           i12 = i19;
   13342           0 :           i11 = i22;
   13343           0 :           break L8;
   13344           0 :          }
   13345           0 :          i11 = i22 + 1 | 0;
   13346           0 :          i21 = _match(i1, i19, i11) | 0;
   13347           0 :          if ((i21 | 0) == 0) {
   13348           0 :           break L80;
   13349           0 :          } else {
   13350           0 :           i12 = i21;
   13351           0 :           break L4;
   13352           0 :          }
   13353           0 :         } else {
   13354           0 :          i23 = HEAP8[i22] | 0;
   13355           0 :         }
   13356           0 :        } while (0);
   13357           0 :        if (!(i23 << 24 >> 24 == 45 | i23 << 24 >> 24 == 63 | i23 << 24 >> 24 == 42)) {
   13358           0 :         i12 = 0;
   13359           0 :         break L4;
   13360           0 :        }
   13361           0 :        i11 = i22 + 1 | 0;
   13362           0 :       }
   13363           0 :      } while (0);
   13364           0 :      i22 = HEAP32[i14 >> 2] | 0;
   13365           0 :      if ((i11 | 0) == (i22 | 0)) {
   13366           0 :       break L4;
   13367           0 :      }
   13368           0 :     }
   13369           0 :     if ((i7 | 0) == 25) {
   13370           0 :      i7 = 0;
   13371           0 :      i21 = i11 + 2 | 0;
   13372           0 :      if (!((i22 + -1 | 0) >>> 0 > i21 >>> 0)) {
   13373           0 :       _luaL_error(HEAP32[i9 >> 2] | 0, 7440, i8) | 0;
   13374           0 :      }
   13375           0 :      i20 = HEAP8[i12] | 0;
   13376           0 :      if (!(i20 << 24 >> 24 == (HEAP8[i21] | 0))) {
   13377           0 :       i12 = 0;
   13378           0 :       break L4;
   13379           0 :      }
   13380           0 :      i21 = HEAP8[i11 + 3 | 0] | 0;
   13381           0 :      i22 = HEAP32[i3 >> 2] | 0;
   13382           0 :      if (i19 >>> 0 < i22 >>> 0) {
   13383           0 :       i24 = 1;
   13384           0 :      } else {
   13385           0 :       i12 = 0;
   13386           0 :       break L4;
   13387           0 :      }
   13388           0 :      while (1) {
   13389           0 :       i23 = HEAP8[i19] | 0;
   13390           0 :       if (i23 << 24 >> 24 == i21 << 24 >> 24) {
   13391           0 :        i24 = i24 + -1 | 0;
   13392           0 :        if ((i24 | 0) == 0) {
   13393           0 :         break;
   13394           0 :        }
   13395           0 :       } else {
   13396           0 :        i24 = (i23 << 24 >> 24 == i20 << 24 >> 24) + i24 | 0;
   13397           0 :       }
   13398           0 :       i12 = i19 + 1 | 0;
   13399           0 :       if (i12 >>> 0 < i22 >>> 0) {
   13400           0 :        i32 = i19;
   13401           0 :        i19 = i12;
   13402           0 :        i12 = i32;
   13403           0 :       } else {
   13404           0 :        i12 = 0;
   13405           0 :        break L4;
   13406           0 :       }
   13407           0 :      }
   13408           0 :      i12 = i12 + 2 | 0;
   13409           0 :      i11 = i11 + 4 | 0;
   13410           0 :     } else if ((i7 | 0) == 69) {
   13411           0 :      i7 = 0;
   13412           0 :      i20 = i23 & 255;
   13413           0 :      i19 = i20 + -49 | 0;
   13414           0 :      if (((i19 | 0) >= 0 ? (i19 | 0) < (HEAP32[i10 >> 2] | 0) : 0) ? (i15 = HEAP32[i1 + (i19 << 3) + 28 >> 2] | 0, !((i15 | 0) == -1)) : 0) {
   13415           0 :       i20 = i15;
   13416           0 :      } else {
   13417           0 :       i19 = HEAP32[i9 >> 2] | 0;
   13418           0 :       HEAP32[i8 >> 2] = i20 + -48;
   13419           0 :       i20 = _luaL_error(i19, 7336, i8) | 0;
   13420           0 :       i19 = i20;
   13421           0 :       i20 = HEAP32[i1 + (i20 << 3) + 28 >> 2] | 0;
   13422           0 :      }
   13423           0 :      if (((HEAP32[i3 >> 2] | 0) - i12 | 0) >>> 0 < i20 >>> 0) {
   13424           0 :       i12 = 0;
   13425           0 :       break L4;
   13426           0 :      }
   13427           0 :      if ((_memcmp(HEAP32[i1 + (i19 << 3) + 24 >> 2] | 0, i12, i20) | 0) != 0) {
   13428           0 :       i12 = 0;
   13429           0 :       break L4;
   13430           0 :      }
   13431           0 :      i12 = i12 + i20 | 0;
   13432           0 :      if ((i12 | 0) == 0) {
   13433           0 :       i12 = 0;
   13434           0 :       break L4;
   13435           0 :      }
   13436           0 :      i11 = i11 + 2 | 0;
   13437           0 :     }
   13438           0 :     i22 = HEAP32[i14 >> 2] | 0;
   13439           0 :     if ((i11 | 0) == (i22 | 0)) {
   13440           0 :      break L4;
   13441           0 :     }
   13442           0 :    }
   13443           0 :    if ((i7 | 0) == 7) {
   13444           0 :     i3 = i11 + 1 | 0;
   13445           0 :     if ((HEAP8[i3] | 0) == 41) {
   13446           0 :      i3 = HEAP32[i10 >> 2] | 0;
   13447           0 :      if ((i3 | 0) > 31) {
   13448           0 :       _luaL_error(HEAP32[i9 >> 2] | 0, 7200, i8) | 0;
   13449           0 :      }
   13450           0 :      HEAP32[i1 + (i3 << 3) + 24 >> 2] = i12;
   13451           0 :      HEAP32[i1 + (i3 << 3) + 28 >> 2] = -2;
   13452           0 :      HEAP32[i10 >> 2] = i3 + 1;
   13453           0 :      i12 = _match(i1, i12, i11 + 2 | 0) | 0;
   13454           0 :      if ((i12 | 0) != 0) {
   13455           0 :       break;
   13456           0 :      }
   13457           0 :      HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -1;
   13458           0 :      i12 = 0;
   13459           0 :      break;
   13460           0 :     } else {
   13461           0 :      i4 = HEAP32[i10 >> 2] | 0;
   13462           0 :      if ((i4 | 0) > 31) {
   13463           0 :       _luaL_error(HEAP32[i9 >> 2] | 0, 7200, i8) | 0;
   13464           0 :      }
   13465           0 :      HEAP32[i1 + (i4 << 3) + 24 >> 2] = i12;
   13466           0 :      HEAP32[i1 + (i4 << 3) + 28 >> 2] = -1;
   13467           0 :      HEAP32[i10 >> 2] = i4 + 1;
   13468           0 :      i12 = _match(i1, i12, i3) | 0;
   13469           0 :      if ((i12 | 0) != 0) {
   13470           0 :       break;
   13471           0 :      }
   13472           0 :      HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -1;
   13473           0 :      i12 = 0;
   13474           0 :      break;
   13475           0 :     }
   13476           0 :    } else if ((i7 | 0) == 16) {
   13477           0 :     i3 = i11 + 1 | 0;
   13478           0 :     i5 = HEAP32[i10 >> 2] | 0;
   13479           0 :     while (1) {
   13480           0 :      i4 = i5 + -1 | 0;
   13481           0 :      if ((i5 | 0) <= 0) {
   13482           0 :       i7 = 19;
   13483           0 :       break;
   13484           0 :      }
   13485           0 :      if ((HEAP32[i1 + (i4 << 3) + 28 >> 2] | 0) == -1) {
   13486           0 :       break;
   13487           0 :      } else {
   13488           0 :       i5 = i4;
   13489           0 :      }
   13490           0 :     }
   13491           0 :     if ((i7 | 0) == 19) {
   13492           0 :      i4 = _luaL_error(HEAP32[i9 >> 2] | 0, 7488, i8) | 0;
   13493           0 :     }
   13494           0 :     i5 = i1 + (i4 << 3) + 28 | 0;
   13495           0 :     HEAP32[i5 >> 2] = i12 - (HEAP32[i1 + (i4 << 3) + 24 >> 2] | 0);
   13496           0 :     i12 = _match(i1, i12, i3) | 0;
   13497           0 :     if ((i12 | 0) != 0) {
   13498           0 :      break;
   13499           0 :     }
   13500           0 :     HEAP32[i5 >> 2] = -1;
   13501           0 :     i12 = 0;
   13502           0 :     break;
   13503           0 :    } else if ((i7 | 0) == 23) {
   13504           0 :     i12 = (i12 | 0) == (HEAP32[i3 >> 2] | 0) ? i12 : 0;
   13505           0 :     break;
   13506           0 :    } else if ((i7 | 0) == 109) {
   13507           0 :     i4 = i22 + 1 | 0;
   13508           0 :     i8 = _match(i1, i12, i4) | 0;
   13509           0 :     if ((i8 | 0) != 0) {
   13510           0 :      i12 = i8;
   13511           0 :      break;
   13512           0 :     }
   13513           0 :     i8 = i22 + -1 | 0;
   13514           0 :     while (1) {
   13515           0 :      if (!((HEAP32[i3 >> 2] | 0) >>> 0 > i12 >>> 0)) {
   13516           0 :       i12 = 0;
   13517           0 :       break L4;
   13518           0 :      }
   13519           0 :      i9 = HEAP8[i12] | 0;
   13520           0 :      i10 = i9 & 255;
   13521           0 :      i14 = HEAP8[i11] | 0;
   13522           0 :      i13 = i14 << 24 >> 24;
   13523           0 :      L139 : do {
   13524           0 :       if ((i13 | 0) == 91) {
   13525           0 :        i6 = (HEAP8[i21] | 0) == 94;
   13526           0 :        i13 = i6 ? i21 : i11;
   13527           0 :        i6 = i6 & 1;
   13528           0 :        i7 = i6 ^ 1;
   13529           0 :        i14 = i13 + 1 | 0;
   13530           0 :        if (i14 >>> 0 < i8 >>> 0) {
   13531           0 :         while (1) {
   13532           0 :          i17 = HEAP8[i14] | 0;
   13533           0 :          i15 = i13 + 2 | 0;
   13534           0 :          i16 = HEAP8[i15] | 0;
   13535           0 :          do {
   13536           0 :           if (i17 << 24 >> 24 == 37) {
   13537           0 :            if ((_match_class(i10, i16 & 255) | 0) == 0) {
   13538           0 :             i13 = i15;
   13539           0 :            } else {
   13540           0 :             i6 = i7;
   13541           0 :             i7 = 147;
   13542           0 :             break L139;
   13543           0 :            }
   13544           0 :           } else {
   13545           0 :            if (i16 << 24 >> 24 == 45 ? (i5 = i13 + 3 | 0, i5 >>> 0 < i8 >>> 0) : 0) {
   13546           0 :             if ((i17 & 255) > (i9 & 255)) {
   13547           0 :              i13 = i5;
   13548           0 :              break;
   13549           0 :             }
   13550           0 :             if ((HEAPU8[i5] | 0) < (i9 & 255)) {
   13551           0 :              i13 = i5;
   13552           0 :              break;
   13553           0 :             } else {
   13554           0 :              i6 = i7;
   13555           0 :              i7 = 147;
   13556           0 :              break L139;
   13557           0 :             }
   13558           0 :            }
   13559           0 :            if (i17 << 24 >> 24 == i9 << 24 >> 24) {
   13560           0 :             i6 = i7;
   13561           0 :             i7 = 147;
   13562           0 :             break L139;
   13563           0 :            } else {
   13564           0 :             i13 = i14;
   13565           0 :            }
   13566           0 :           }
   13567           0 :          } while (0);
   13568           0 :          i14 = i13 + 1 | 0;
   13569           0 :          if (!(i14 >>> 0 < i8 >>> 0)) {
   13570           0 :           i7 = 147;
   13571           0 :           break;
   13572           0 :          }
   13573           0 :         }
   13574           0 :        } else {
   13575           0 :         i7 = 147;
   13576           0 :        }
   13577           0 :       } else if ((i13 | 0) == 37) {
   13578           0 :        i6 = _match_class(i10, HEAPU8[i21] | 0) | 0;
   13579           0 :        i7 = 147;
   13580           0 :       } else if ((i13 | 0) != 46) {
   13581           0 :        i6 = i14 << 24 >> 24 == i9 << 24 >> 24 | 0;
   13582           0 :        i7 = 147;
   13583           0 :       }
   13584           0 :      } while (0);
   13585           0 :      if ((i7 | 0) == 147 ? (i7 = 0, (i6 | 0) == 0) : 0) {
   13586           0 :       i12 = 0;
   13587           0 :       break L4;
   13588           0 :      }
   13589           0 :      i9 = i12 + 1 | 0;
   13590           0 :      i12 = _match(i1, i9, i4) | 0;
   13591           0 :      if ((i12 | 0) == 0) {
   13592           0 :       i12 = i9;
   13593           0 :      } else {
   13594           0 :       break L4;
   13595           0 :      }
   13596           0 :     }
   13597           0 :    } else if ((i7 | 0) == 112) {
   13598           0 :     i19 = i12;
   13599           0 :    }
   13600           0 :    i10 = HEAP32[i3 >> 2] | 0;
   13601           0 :    if (i10 >>> 0 > i19 >>> 0) {
   13602           0 :     i5 = i22 + -1 | 0;
   13603           0 :     i8 = i19;
   13604           0 :     i6 = 0;
   13605           0 :     do {
   13606           0 :      i8 = HEAP8[i8] | 0;
   13607           0 :      i9 = i8 & 255;
   13608           0 :      i13 = HEAP8[i11] | 0;
   13609           0 :      i12 = i13 << 24 >> 24;
   13610           0 :      L183 : do {
   13611           0 :       if ((i12 | 0) == 37) {
   13612           0 :        i10 = _match_class(i9, HEAPU8[i21] | 0) | 0;
   13613           0 :        i7 = 129;
   13614           0 :       } else if ((i12 | 0) == 91) {
   13615           0 :        i7 = (HEAP8[i21] | 0) == 94;
   13616           0 :        i12 = i7 ? i21 : i11;
   13617           0 :        i10 = i7 & 1;
   13618           0 :        i7 = i10 ^ 1;
   13619           0 :        i13 = i12 + 1 | 0;
   13620           0 :        if (i13 >>> 0 < i5 >>> 0) {
   13621           0 :         while (1) {
   13622           0 :          i14 = HEAP8[i13] | 0;
   13623           0 :          i16 = i12 + 2 | 0;
   13624           0 :          i15 = HEAP8[i16] | 0;
   13625           0 :          do {
   13626           0 :           if (i14 << 24 >> 24 == 37) {
   13627           0 :            if ((_match_class(i9, i15 & 255) | 0) == 0) {
   13628           0 :             i12 = i16;
   13629           0 :            } else {
   13630           0 :             i10 = i7;
   13631           0 :             i7 = 129;
   13632           0 :             break L183;
   13633           0 :            }
   13634           0 :           } else {
   13635           0 :            if (i15 << 24 >> 24 == 45 ? (i4 = i12 + 3 | 0, i4 >>> 0 < i5 >>> 0) : 0) {
   13636           0 :             if ((i14 & 255) > (i8 & 255)) {
   13637           0 :              i12 = i4;
   13638           0 :              break;
   13639           0 :             }
   13640           0 :             if ((HEAPU8[i4] | 0) < (i8 & 255)) {
   13641           0 :              i12 = i4;
   13642           0 :              break;
   13643           0 :             } else {
   13644           0 :              i10 = i7;
   13645           0 :              i7 = 129;
   13646           0 :              break L183;
   13647           0 :             }
   13648           0 :            }
   13649           0 :            if (i14 << 24 >> 24 == i8 << 24 >> 24) {
   13650           0 :             i10 = i7;
   13651           0 :             i7 = 129;
   13652           0 :             break L183;
   13653           0 :            } else {
   13654           0 :             i12 = i13;
   13655           0 :            }
   13656           0 :           }
   13657           0 :          } while (0);
   13658           0 :          i13 = i12 + 1 | 0;
   13659           0 :          if (!(i13 >>> 0 < i5 >>> 0)) {
   13660           0 :           i7 = 129;
   13661           0 :           break;
   13662           0 :          }
   13663           0 :         }
   13664           0 :        } else {
   13665           0 :         i7 = 129;
   13666           0 :        }
   13667           0 :       } else if ((i12 | 0) != 46) {
   13668           0 :        i10 = i13 << 24 >> 24 == i8 << 24 >> 24 | 0;
   13669           0 :        i7 = 129;
   13670           0 :       }
   13671           0 :      } while (0);
   13672           0 :      if ((i7 | 0) == 129) {
   13673           0 :       i7 = 0;
   13674           0 :       if ((i10 | 0) == 0) {
   13675           0 :        break;
   13676           0 :       }
   13677           0 :       i10 = HEAP32[i3 >> 2] | 0;
   13678           0 :      }
   13679           0 :      i6 = i6 + 1 | 0;
   13680           0 :      i8 = i19 + i6 | 0;
   13681           0 :     } while (i10 >>> 0 > i8 >>> 0);
   13682           0 :     if (!((i6 | 0) > -1)) {
   13683           0 :      i12 = 0;
   13684           0 :      break;
   13685           0 :     }
   13686           0 :    } else {
   13687           0 :     i6 = 0;
   13688           0 :    }
   13689           0 :    i3 = i22 + 1 | 0;
   13690           0 :    while (1) {
   13691           0 :     i12 = _match(i1, i19 + i6 | 0, i3) | 0;
   13692           0 :     if ((i12 | 0) != 0) {
   13693           0 :      break L4;
   13694           0 :     }
   13695           0 :     if ((i6 | 0) > 0) {
   13696           0 :      i6 = i6 + -1 | 0;
   13697           0 :     } else {
   13698           0 :      i12 = 0;
   13699           0 :      break;
   13700           0 :     }
   13701           0 :    }
   13702           0 :   }
   13703           0 :  } while (0);
   13704           0 :  HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 1;
   13705           0 :  STACKTOP = i2;
   13706           0 :  return i12 | 0;
   13707           1 : }
   13708      286477 : function _free(i7) {
   13709      286477 :  i7 = i7 | 0;
   13710      286477 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
   13711      286477 :  i1 = STACKTOP;
   13712      286477 :  if ((i7 | 0) == 0) {
   13713      286477 :   STACKTOP = i1;
   13714      286477 :   return;
   13715      286477 :  }
   13716      286477 :  i15 = i7 + -8 | 0;
   13717      286477 :  i16 = HEAP32[12928 >> 2] | 0;
   13718      286477 :  if (i15 >>> 0 < i16 >>> 0) {
   13719      286477 :   _abort();
   13720      286477 :  }
   13721      286477 :  i13 = HEAP32[i7 + -4 >> 2] | 0;
   13722      286477 :  i12 = i13 & 3;
   13723      286477 :  if ((i12 | 0) == 1) {
   13724      286477 :   _abort();
   13725      286477 :  }
   13726      286477 :  i8 = i13 & -8;
   13727      286477 :  i6 = i7 + (i8 + -8) | 0;
   13728      286477 :  do {
   13729      286477 :   if ((i13 & 1 | 0) == 0) {
   13730      286477 :    i19 = HEAP32[i15 >> 2] | 0;
   13731      286477 :    if ((i12 | 0) == 0) {
   13732      286477 :     STACKTOP = i1;
   13733      286477 :     return;
   13734      286477 :    }
   13735      286477 :    i15 = -8 - i19 | 0;
   13736      286477 :    i13 = i7 + i15 | 0;
   13737      286477 :    i12 = i19 + i8 | 0;
   13738      286477 :    if (i13 >>> 0 < i16 >>> 0) {
   13739      286477 :     _abort();
   13740      286477 :    }
   13741      286477 :    if ((i13 | 0) == (HEAP32[12932 >> 2] | 0)) {
   13742      286477 :     i2 = i7 + (i8 + -4) | 0;
   13743      286477 :     if ((HEAP32[i2 >> 2] & 3 | 0) != 3) {
   13744      286477 :      i2 = i13;
   13745      286477 :      i11 = i12;
   13746      286477 :      break;
   13747      286477 :     }
   13748      286477 :     HEAP32[12920 >> 2] = i12;
   13749      286477 :     HEAP32[i2 >> 2] = HEAP32[i2 >> 2] & -2;
   13750      286477 :     HEAP32[i7 + (i15 + 4) >> 2] = i12 | 1;
   13751      286477 :     HEAP32[i6 >> 2] = i12;
   13752      286477 :     STACKTOP = i1;
   13753      286477 :     return;
   13754      286477 :    }
   13755      286477 :    i18 = i19 >>> 3;
   13756      286477 :    if (i19 >>> 0 < 256) {
   13757      286477 :     i2 = HEAP32[i7 + (i15 + 8) >> 2] | 0;
   13758      286477 :     i11 = HEAP32[i7 + (i15 + 12) >> 2] | 0;
   13759      286477 :     i14 = 12952 + (i18 << 1 << 2) | 0;
   13760      286477 :     if ((i2 | 0) != (i14 | 0)) {
   13761      286477 :      if (i2 >>> 0 < i16 >>> 0) {
   13762      286477 :       _abort();
   13763      286477 :      }
   13764      286477 :      if ((HEAP32[i2 + 12 >> 2] | 0) != (i13 | 0)) {
   13765      286477 :       _abort();
   13766      286477 :      }
   13767      286477 :     }
   13768      286477 :     if ((i11 | 0) == (i2 | 0)) {
   13769      286477 :      HEAP32[3228] = HEAP32[3228] & ~(1 << i18);
   13770      286477 :      i2 = i13;
   13771      286477 :      i11 = i12;
   13772      286477 :      break;
   13773      286477 :     }
   13774      286477 :     if ((i11 | 0) != (i14 | 0)) {
   13775      286477 :      if (i11 >>> 0 < i16 >>> 0) {
   13776      286477 :       _abort();
   13777      286477 :      }
   13778      286477 :      i14 = i11 + 8 | 0;
   13779      286477 :      if ((HEAP32[i14 >> 2] | 0) == (i13 | 0)) {
   13780      286477 :       i17 = i14;
   13781      286477 :      } else {
   13782      286477 :       _abort();
   13783      286477 :      }
   13784      286477 :     } else {
   13785      286477 :      i17 = i11 + 8 | 0;
   13786      286477 :     }
   13787      286477 :     HEAP32[i2 + 12 >> 2] = i11;
   13788      286477 :     HEAP32[i17 >> 2] = i2;
   13789      286477 :     i2 = i13;
   13790      286477 :     i11 = i12;
   13791      286477 :     break;
   13792      286477 :    }
   13793      286477 :    i17 = HEAP32[i7 + (i15 + 24) >> 2] | 0;
   13794      286477 :    i18 = HEAP32[i7 + (i15 + 12) >> 2] | 0;
   13795      286477 :    do {
   13796      286477 :     if ((i18 | 0) == (i13 | 0)) {
   13797      286477 :      i19 = i7 + (i15 + 20) | 0;
   13798      286477 :      i18 = HEAP32[i19 >> 2] | 0;
   13799      286477 :      if ((i18 | 0) == 0) {
   13800      286477 :       i19 = i7 + (i15 + 16) | 0;
   13801      286477 :       i18 = HEAP32[i19 >> 2] | 0;
   13802      286477 :       if ((i18 | 0) == 0) {
   13803      286477 :        i14 = 0;
   13804      286477 :        break;
   13805      286477 :       }
   13806      286477 :      }
   13807      286477 :      while (1) {
   13808      286477 :       i21 = i18 + 20 | 0;
   13809      286477 :       i20 = HEAP32[i21 >> 2] | 0;
   13810      286477 :       if ((i20 | 0) != 0) {
   13811      286477 :        i18 = i20;
   13812      286477 :        i19 = i21;
   13813      286477 :        continue;
   13814      286477 :       }
   13815      286477 :       i20 = i18 + 16 | 0;
   13816      286477 :       i21 = HEAP32[i20 >> 2] | 0;
   13817      286477 :       if ((i21 | 0) == 0) {
   13818      286477 :        break;
   13819      286477 :       } else {
   13820      286477 :        i18 = i21;
   13821      286477 :        i19 = i20;
   13822      286477 :       }
   13823      286477 :      }
   13824      286477 :      if (i19 >>> 0 < i16 >>> 0) {
   13825      286477 :       _abort();
   13826      286477 :      } else {
   13827      286477 :       HEAP32[i19 >> 2] = 0;
   13828      286477 :       i14 = i18;
   13829      286477 :       break;
   13830      286477 :      }
   13831      286477 :     } else {
   13832      286477 :      i19 = HEAP32[i7 + (i15 + 8) >> 2] | 0;
   13833      286477 :      if (i19 >>> 0 < i16 >>> 0) {
   13834      286477 :       _abort();
   13835      286477 :      }
   13836      286477 :      i16 = i19 + 12 | 0;
   13837      286477 :      if ((HEAP32[i16 >> 2] | 0) != (i13 | 0)) {
   13838      286477 :       _abort();
   13839      286477 :      }
   13840      286477 :      i20 = i18 + 8 | 0;
   13841      286477 :      if ((HEAP32[i20 >> 2] | 0) == (i13 | 0)) {
   13842      286477 :       HEAP32[i16 >> 2] = i18;
   13843      286477 :       HEAP32[i20 >> 2] = i19;
   13844      286477 :       i14 = i18;
   13845      286477 :       break;
   13846      286477 :      } else {
   13847      286477 :       _abort();
   13848      286477 :      }
   13849      286477 :     }
   13850      286477 :    } while (0);
   13851      286477 :    if ((i17 | 0) != 0) {
   13852      286477 :     i18 = HEAP32[i7 + (i15 + 28) >> 2] | 0;
   13853      286477 :     i16 = 13216 + (i18 << 2) | 0;
   13854      286477 :     if ((i13 | 0) == (HEAP32[i16 >> 2] | 0)) {
   13855      286477 :      HEAP32[i16 >> 2] = i14;
   13856      286477 :      if ((i14 | 0) == 0) {
   13857      286477 :       HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i18);
   13858      286477 :       i2 = i13;
   13859      286477 :       i11 = i12;
   13860      286477 :       break;
   13861      286477 :      }
   13862      286477 :     } else {
   13863      286477 :      if (i17 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   13864      286477 :       _abort();
   13865      286477 :      }
   13866      286477 :      i16 = i17 + 16 | 0;
   13867      286477 :      if ((HEAP32[i16 >> 2] | 0) == (i13 | 0)) {
   13868      286477 :       HEAP32[i16 >> 2] = i14;
   13869      286477 :      } else {
   13870      286477 :       HEAP32[i17 + 20 >> 2] = i14;
   13871      286477 :      }
   13872      286477 :      if ((i14 | 0) == 0) {
   13873      286477 :       i2 = i13;
   13874      286477 :       i11 = i12;
   13875      286477 :       break;
   13876      286477 :      }
   13877      286477 :     }
   13878      286477 :     if (i14 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   13879      286477 :      _abort();
   13880      286477 :     }
   13881      286477 :     HEAP32[i14 + 24 >> 2] = i17;
   13882      286477 :     i16 = HEAP32[i7 + (i15 + 16) >> 2] | 0;
   13883      286477 :     do {
   13884      286477 :      if ((i16 | 0) != 0) {
   13885      286477 :       if (i16 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   13886      286477 :        _abort();
   13887      286477 :       } else {
   13888      286477 :        HEAP32[i14 + 16 >> 2] = i16;
   13889      286477 :        HEAP32[i16 + 24 >> 2] = i14;
   13890      286477 :        break;
   13891      286477 :       }
   13892      286477 :      }
   13893      286477 :     } while (0);
   13894      286477 :     i15 = HEAP32[i7 + (i15 + 20) >> 2] | 0;
   13895      286477 :     if ((i15 | 0) != 0) {
   13896      286477 :      if (i15 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   13897      286477 :       _abort();
   13898      286477 :      } else {
   13899      286477 :       HEAP32[i14 + 20 >> 2] = i15;
   13900      286477 :       HEAP32[i15 + 24 >> 2] = i14;
   13901      286477 :       i2 = i13;
   13902      286477 :       i11 = i12;
   13903      286477 :       break;
   13904      286477 :      }
   13905      286477 :     } else {
   13906      286477 :      i2 = i13;
   13907      286477 :      i11 = i12;
   13908      286477 :     }
   13909      286477 :    } else {
   13910      286477 :     i2 = i13;
   13911      286477 :     i11 = i12;
   13912      286477 :    }
   13913      286477 :   } else {
   13914      286477 :    i2 = i15;
   13915      286477 :    i11 = i8;
   13916      286477 :   }
   13917      286477 :  } while (0);
   13918      286477 :  if (!(i2 >>> 0 < i6 >>> 0)) {
   13919      286477 :   _abort();
   13920      286477 :  }
   13921      286477 :  i12 = i7 + (i8 + -4) | 0;
   13922      286477 :  i13 = HEAP32[i12 >> 2] | 0;
   13923      286477 :  if ((i13 & 1 | 0) == 0) {
   13924      286477 :   _abort();
   13925      286477 :  }
   13926      286477 :  if ((i13 & 2 | 0) == 0) {
   13927      286477 :   if ((i6 | 0) == (HEAP32[12936 >> 2] | 0)) {
   13928      286477 :    i21 = (HEAP32[12924 >> 2] | 0) + i11 | 0;
   13929      286477 :    HEAP32[12924 >> 2] = i21;
   13930      286477 :    HEAP32[12936 >> 2] = i2;
   13931      286477 :    HEAP32[i2 + 4 >> 2] = i21 | 1;
   13932      286477 :    if ((i2 | 0) != (HEAP32[12932 >> 2] | 0)) {
   13933      286477 :     STACKTOP = i1;
   13934      286477 :     return;
   13935      286477 :    }
   13936      286477 :    HEAP32[12932 >> 2] = 0;
   13937      286477 :    HEAP32[12920 >> 2] = 0;
   13938      286477 :    STACKTOP = i1;
   13939      286477 :    return;
   13940      286477 :   }
   13941      286477 :   if ((i6 | 0) == (HEAP32[12932 >> 2] | 0)) {
   13942      286477 :    i21 = (HEAP32[12920 >> 2] | 0) + i11 | 0;
   13943      286477 :    HEAP32[12920 >> 2] = i21;
   13944      286477 :    HEAP32[12932 >> 2] = i2;
   13945      286477 :    HEAP32[i2 + 4 >> 2] = i21 | 1;
   13946      286477 :    HEAP32[i2 + i21 >> 2] = i21;
   13947      286477 :    STACKTOP = i1;
   13948      286477 :    return;
   13949      286477 :   }
   13950      286477 :   i11 = (i13 & -8) + i11 | 0;
   13951      286477 :   i12 = i13 >>> 3;
   13952      286477 :   do {
   13953      286477 :    if (!(i13 >>> 0 < 256)) {
   13954      286477 :     i10 = HEAP32[i7 + (i8 + 16) >> 2] | 0;
   13955      286477 :     i15 = HEAP32[i7 + (i8 | 4) >> 2] | 0;
   13956      286477 :     do {
   13957      286477 :      if ((i15 | 0) == (i6 | 0)) {
   13958      286477 :       i13 = i7 + (i8 + 12) | 0;
   13959      286477 :       i12 = HEAP32[i13 >> 2] | 0;
   13960      286477 :       if ((i12 | 0) == 0) {
   13961      286477 :        i13 = i7 + (i8 + 8) | 0;
   13962      286477 :        i12 = HEAP32[i13 >> 2] | 0;
   13963      286477 :        if ((i12 | 0) == 0) {
   13964      286477 :         i9 = 0;
   13965      286477 :         break;
   13966      286477 :        }
   13967      286477 :       }
   13968      286477 :       while (1) {
   13969      286477 :        i14 = i12 + 20 | 0;
   13970      286477 :        i15 = HEAP32[i14 >> 2] | 0;
   13971      286477 :        if ((i15 | 0) != 0) {
   13972      286477 :         i12 = i15;
   13973      286477 :         i13 = i14;
   13974      286477 :         continue;
   13975      286477 :        }
   13976      286477 :        i14 = i12 + 16 | 0;
   13977      286477 :        i15 = HEAP32[i14 >> 2] | 0;
   13978      286477 :        if ((i15 | 0) == 0) {
   13979      286477 :         break;
   13980      286477 :        } else {
   13981      286477 :         i12 = i15;
   13982      286477 :         i13 = i14;
   13983      286477 :        }
   13984      286477 :       }
   13985      286477 :       if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   13986      286477 :        _abort();
   13987      286477 :       } else {
   13988      286477 :        HEAP32[i13 >> 2] = 0;
   13989      286477 :        i9 = i12;
   13990      286477 :        break;
   13991      286477 :       }
   13992      286477 :      } else {
   13993      286477 :       i13 = HEAP32[i7 + i8 >> 2] | 0;
   13994      286477 :       if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   13995      286477 :        _abort();
   13996      286477 :       }
   13997      286477 :       i14 = i13 + 12 | 0;
   13998      286477 :       if ((HEAP32[i14 >> 2] | 0) != (i6 | 0)) {
   13999      286477 :        _abort();
   14000      286477 :       }
   14001      286477 :       i12 = i15 + 8 | 0;
   14002      286477 :       if ((HEAP32[i12 >> 2] | 0) == (i6 | 0)) {
   14003      286477 :        HEAP32[i14 >> 2] = i15;
   14004      286477 :        HEAP32[i12 >> 2] = i13;
   14005      286477 :        i9 = i15;
   14006      286477 :        break;
   14007      286477 :       } else {
   14008      286477 :        _abort();
   14009      286477 :       }
   14010      286477 :      }
   14011      286477 :     } while (0);
   14012      286477 :     if ((i10 | 0) != 0) {
   14013      286477 :      i12 = HEAP32[i7 + (i8 + 20) >> 2] | 0;
   14014      286477 :      i13 = 13216 + (i12 << 2) | 0;
   14015      286477 :      if ((i6 | 0) == (HEAP32[i13 >> 2] | 0)) {
   14016      286477 :       HEAP32[i13 >> 2] = i9;
   14017      286477 :       if ((i9 | 0) == 0) {
   14018      286477 :        HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i12);
   14019      286477 :        break;
   14020      286477 :       }
   14021      286477 :      } else {
   14022      286477 :       if (i10 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14023      286477 :        _abort();
   14024      286477 :       }
   14025      286477 :       i12 = i10 + 16 | 0;
   14026      286477 :       if ((HEAP32[i12 >> 2] | 0) == (i6 | 0)) {
   14027      286477 :        HEAP32[i12 >> 2] = i9;
   14028      286477 :       } else {
   14029      286477 :        HEAP32[i10 + 20 >> 2] = i9;
   14030      286477 :       }
   14031      286477 :       if ((i9 | 0) == 0) {
   14032      286477 :        break;
   14033      286477 :       }
   14034      286477 :      }
   14035      286477 :      if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14036      286477 :       _abort();
   14037      286477 :      }
   14038      286477 :      HEAP32[i9 + 24 >> 2] = i10;
   14039      286477 :      i6 = HEAP32[i7 + (i8 + 8) >> 2] | 0;
   14040      286477 :      do {
   14041      286477 :       if ((i6 | 0) != 0) {
   14042      286477 :        if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14043      286477 :         _abort();
   14044      286477 :        } else {
   14045      286477 :         HEAP32[i9 + 16 >> 2] = i6;
   14046      286477 :         HEAP32[i6 + 24 >> 2] = i9;
   14047      286477 :         break;
   14048      286477 :        }
   14049      286477 :       }
   14050      286477 :      } while (0);
   14051      286477 :      i6 = HEAP32[i7 + (i8 + 12) >> 2] | 0;
   14052      286477 :      if ((i6 | 0) != 0) {
   14053      286477 :       if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14054      286477 :        _abort();
   14055      286477 :       } else {
   14056      286477 :        HEAP32[i9 + 20 >> 2] = i6;
   14057      286477 :        HEAP32[i6 + 24 >> 2] = i9;
   14058      286477 :        break;
   14059      286477 :       }
   14060      286477 :      }
   14061      286477 :     }
   14062      286477 :    } else {
   14063      286477 :     i9 = HEAP32[i7 + i8 >> 2] | 0;
   14064      286477 :     i7 = HEAP32[i7 + (i8 | 4) >> 2] | 0;
   14065      286477 :     i8 = 12952 + (i12 << 1 << 2) | 0;
   14066      286477 :     if ((i9 | 0) != (i8 | 0)) {
   14067      286477 :      if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14068      286477 :       _abort();
   14069      286477 :      }
   14070      286477 :      if ((HEAP32[i9 + 12 >> 2] | 0) != (i6 | 0)) {
   14071      286477 :       _abort();
   14072      286477 :      }
   14073      286477 :     }
   14074      286477 :     if ((i7 | 0) == (i9 | 0)) {
   14075      286477 :      HEAP32[3228] = HEAP32[3228] & ~(1 << i12);
   14076      286477 :      break;
   14077      286477 :     }
   14078      286477 :     if ((i7 | 0) != (i8 | 0)) {
   14079      286477 :      if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14080      286477 :       _abort();
   14081      286477 :      }
   14082      286477 :      i8 = i7 + 8 | 0;
   14083      286477 :      if ((HEAP32[i8 >> 2] | 0) == (i6 | 0)) {
   14084      286477 :       i10 = i8;
   14085      286477 :      } else {
   14086      286477 :       _abort();
   14087      286477 :      }
   14088      286477 :     } else {
   14089      286477 :      i10 = i7 + 8 | 0;
   14090      286477 :     }
   14091      286477 :     HEAP32[i9 + 12 >> 2] = i7;
   14092      286477 :     HEAP32[i10 >> 2] = i9;
   14093      286477 :    }
   14094      286477 :   } while (0);
   14095      286477 :   HEAP32[i2 + 4 >> 2] = i11 | 1;
   14096      286477 :   HEAP32[i2 + i11 >> 2] = i11;
   14097      286477 :   if ((i2 | 0) == (HEAP32[12932 >> 2] | 0)) {
   14098      286477 :    HEAP32[12920 >> 2] = i11;
   14099      286477 :    STACKTOP = i1;
   14100      286477 :    return;
   14101      286477 :   }
   14102      286477 :  } else {
   14103      286477 :   HEAP32[i12 >> 2] = i13 & -2;
   14104      286477 :   HEAP32[i2 + 4 >> 2] = i11 | 1;
   14105      286477 :   HEAP32[i2 + i11 >> 2] = i11;
   14106      286477 :  }
   14107      286477 :  i6 = i11 >>> 3;
   14108      286477 :  if (i11 >>> 0 < 256) {
   14109      286477 :   i7 = i6 << 1;
   14110      286477 :   i3 = 12952 + (i7 << 2) | 0;
   14111      286477 :   i8 = HEAP32[3228] | 0;
   14112      286477 :   i6 = 1 << i6;
   14113      286477 :   if ((i8 & i6 | 0) != 0) {
   14114      286477 :    i6 = 12952 + (i7 + 2 << 2) | 0;
   14115      286477 :    i7 = HEAP32[i6 >> 2] | 0;
   14116      286477 :    if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14117      286477 :     _abort();
   14118      286477 :    } else {
   14119      286477 :     i4 = i6;
   14120      286477 :     i5 = i7;
   14121      286477 :    }
   14122      286477 :   } else {
   14123      286477 :    HEAP32[3228] = i8 | i6;
   14124      286477 :    i4 = 12952 + (i7 + 2 << 2) | 0;
   14125      286477 :    i5 = i3;
   14126      286477 :   }
   14127      286477 :   HEAP32[i4 >> 2] = i2;
   14128      286477 :   HEAP32[i5 + 12 >> 2] = i2;
   14129      286477 :   HEAP32[i2 + 8 >> 2] = i5;
   14130      286477 :   HEAP32[i2 + 12 >> 2] = i3;
   14131      286477 :   STACKTOP = i1;
   14132      286477 :   return;
   14133      286477 :  }
   14134      286477 :  i4 = i11 >>> 8;
   14135      286477 :  if ((i4 | 0) != 0) {
   14136      286477 :   if (i11 >>> 0 > 16777215) {
   14137      286477 :    i4 = 31;
   14138      286477 :   } else {
   14139      286477 :    i20 = (i4 + 1048320 | 0) >>> 16 & 8;
   14140      286477 :    i21 = i4 << i20;
   14141      286477 :    i19 = (i21 + 520192 | 0) >>> 16 & 4;
   14142      286477 :    i21 = i21 << i19;
   14143      286477 :    i4 = (i21 + 245760 | 0) >>> 16 & 2;
   14144      286477 :    i4 = 14 - (i19 | i20 | i4) + (i21 << i4 >>> 15) | 0;
   14145      286477 :    i4 = i11 >>> (i4 + 7 | 0) & 1 | i4 << 1;
   14146      286477 :   }
   14147      286477 :  } else {
   14148      286477 :   i4 = 0;
   14149      286477 :  }
   14150      286477 :  i5 = 13216 + (i4 << 2) | 0;
   14151      286477 :  HEAP32[i2 + 28 >> 2] = i4;
   14152      286477 :  HEAP32[i2 + 20 >> 2] = 0;
   14153      286477 :  HEAP32[i2 + 16 >> 2] = 0;
   14154      286477 :  i7 = HEAP32[12916 >> 2] | 0;
   14155      286477 :  i6 = 1 << i4;
   14156      286477 :  L199 : do {
   14157      286477 :   if ((i7 & i6 | 0) != 0) {
   14158      286477 :    i5 = HEAP32[i5 >> 2] | 0;
   14159      286477 :    if ((i4 | 0) == 31) {
   14160      286477 :     i4 = 0;
   14161      286477 :    } else {
   14162      286477 :     i4 = 25 - (i4 >>> 1) | 0;
   14163      286477 :    }
   14164      286477 :    L204 : do {
   14165      286477 :     if ((HEAP32[i5 + 4 >> 2] & -8 | 0) != (i11 | 0)) {
   14166      286477 :      i4 = i11 << i4;
   14167      286477 :      i7 = i5;
   14168      286477 :      while (1) {
   14169      286477 :       i6 = i7 + (i4 >>> 31 << 2) + 16 | 0;
   14170      286477 :       i5 = HEAP32[i6 >> 2] | 0;
   14171      286477 :       if ((i5 | 0) == 0) {
   14172      286477 :        break;
   14173      286477 :       }
   14174      286477 :       if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i11 | 0)) {
   14175      286477 :        i3 = i5;
   14176      286477 :        break L204;
   14177      286477 :       } else {
   14178      286477 :        i4 = i4 << 1;
   14179      286477 :        i7 = i5;
   14180      286477 :       }
   14181      286477 :      }
   14182      286477 :      if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14183      286477 :       _abort();
   14184      286477 :      } else {
   14185      286477 :       HEAP32[i6 >> 2] = i2;
   14186      286477 :       HEAP32[i2 + 24 >> 2] = i7;
   14187      286477 :       HEAP32[i2 + 12 >> 2] = i2;
   14188      286477 :       HEAP32[i2 + 8 >> 2] = i2;
   14189      286477 :       break L199;
   14190      286477 :      }
   14191      286477 :     } else {
   14192      286477 :      i3 = i5;
   14193      286477 :     }
   14194      286477 :    } while (0);
   14195      286477 :    i5 = i3 + 8 | 0;
   14196      286477 :    i4 = HEAP32[i5 >> 2] | 0;
   14197      286477 :    i6 = HEAP32[12928 >> 2] | 0;
   14198      286477 :    if (i3 >>> 0 < i6 >>> 0) {
   14199      286477 :     _abort();
   14200      286477 :    }
   14201      286477 :    if (i4 >>> 0 < i6 >>> 0) {
   14202      286477 :     _abort();
   14203      286477 :    } else {
   14204      286477 :     HEAP32[i4 + 12 >> 2] = i2;
   14205      286477 :     HEAP32[i5 >> 2] = i2;
   14206      286477 :     HEAP32[i2 + 8 >> 2] = i4;
   14207      286477 :     HEAP32[i2 + 12 >> 2] = i3;
   14208      286477 :     HEAP32[i2 + 24 >> 2] = 0;
   14209      286477 :     break;
   14210      286477 :    }
   14211      286477 :   } else {
   14212      286477 :    HEAP32[12916 >> 2] = i7 | i6;
   14213      286477 :    HEAP32[i5 >> 2] = i2;
   14214      286477 :    HEAP32[i2 + 24 >> 2] = i5;
   14215      286477 :    HEAP32[i2 + 12 >> 2] = i2;
   14216      286477 :    HEAP32[i2 + 8 >> 2] = i2;
   14217      286477 :   }
   14218      286477 :  } while (0);
   14219      286477 :  i21 = (HEAP32[12944 >> 2] | 0) + -1 | 0;
   14220      286477 :  HEAP32[12944 >> 2] = i21;
   14221      286477 :  if ((i21 | 0) == 0) {
   14222      286477 :   i2 = 13368 | 0;
   14223      286477 :  } else {
   14224      286477 :   STACKTOP = i1;
   14225      286477 :   return;
   14226      286477 :  }
   14227      286477 :  while (1) {
   14228      286477 :   i2 = HEAP32[i2 >> 2] | 0;
   14229      286477 :   if ((i2 | 0) == 0) {
   14230      286477 :    break;
   14231      286477 :   } else {
   14232      286477 :    i2 = i2 + 8 | 0;
   14233      286477 :   }
   14234      286477 :  }
   14235      286477 :  HEAP32[12944 >> 2] = -1;
   14236      286477 :  STACKTOP = i1;
   14237      286477 :  return;
   14238      286477 : }
   14239          42 : function _dispose_chunk(i6, i7) {
   14240          42 :  i6 = i6 | 0;
   14241          42 :  i7 = i7 | 0;
   14242          42 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
   14243          42 :  i1 = STACKTOP;
   14244          42 :  i5 = i6 + i7 | 0;
   14245          42 :  i10 = HEAP32[i6 + 4 >> 2] | 0;
   14246          42 :  do {
   14247          42 :   if ((i10 & 1 | 0) == 0) {
   14248          42 :    i14 = HEAP32[i6 >> 2] | 0;
   14249          42 :    if ((i10 & 3 | 0) == 0) {
   14250          42 :     STACKTOP = i1;
   14251          42 :     return;
   14252          42 :    }
   14253          42 :    i10 = i6 + (0 - i14) | 0;
   14254          42 :    i11 = i14 + i7 | 0;
   14255          42 :    i15 = HEAP32[12928 >> 2] | 0;
   14256          42 :    if (i10 >>> 0 < i15 >>> 0) {
   14257          42 :     _abort();
   14258          42 :    }
   14259          42 :    if ((i10 | 0) == (HEAP32[12932 >> 2] | 0)) {
   14260          42 :     i2 = i6 + (i7 + 4) | 0;
   14261          42 :     if ((HEAP32[i2 >> 2] & 3 | 0) != 3) {
   14262          42 :      i2 = i10;
   14263          42 :      i12 = i11;
   14264          42 :      break;
   14265          42 :     }
   14266          42 :     HEAP32[12920 >> 2] = i11;
   14267          42 :     HEAP32[i2 >> 2] = HEAP32[i2 >> 2] & -2;
   14268          42 :     HEAP32[i6 + (4 - i14) >> 2] = i11 | 1;
   14269          42 :     HEAP32[i5 >> 2] = i11;
   14270          42 :     STACKTOP = i1;
   14271          42 :     return;
   14272          42 :    }
   14273          42 :    i17 = i14 >>> 3;
   14274          42 :    if (i14 >>> 0 < 256) {
   14275          42 :     i2 = HEAP32[i6 + (8 - i14) >> 2] | 0;
   14276          42 :     i12 = HEAP32[i6 + (12 - i14) >> 2] | 0;
   14277          42 :     i13 = 12952 + (i17 << 1 << 2) | 0;
   14278          42 :     if ((i2 | 0) != (i13 | 0)) {
   14279          42 :      if (i2 >>> 0 < i15 >>> 0) {
   14280          42 :       _abort();
   14281          42 :      }
   14282          42 :      if ((HEAP32[i2 + 12 >> 2] | 0) != (i10 | 0)) {
   14283          42 :       _abort();
   14284          42 :      }
   14285          42 :     }
   14286          42 :     if ((i12 | 0) == (i2 | 0)) {
   14287          42 :      HEAP32[3228] = HEAP32[3228] & ~(1 << i17);
   14288          42 :      i2 = i10;
   14289          42 :      i12 = i11;
   14290          42 :      break;
   14291          42 :     }
   14292          42 :     if ((i12 | 0) != (i13 | 0)) {
   14293          42 :      if (i12 >>> 0 < i15 >>> 0) {
   14294          42 :       _abort();
   14295          42 :      }
   14296          42 :      i13 = i12 + 8 | 0;
   14297          42 :      if ((HEAP32[i13 >> 2] | 0) == (i10 | 0)) {
   14298          42 :       i16 = i13;
   14299          42 :      } else {
   14300          42 :       _abort();
   14301          42 :      }
   14302          42 :     } else {
   14303          42 :      i16 = i12 + 8 | 0;
   14304          42 :     }
   14305          42 :     HEAP32[i2 + 12 >> 2] = i12;
   14306          42 :     HEAP32[i16 >> 2] = i2;
   14307          42 :     i2 = i10;
   14308          42 :     i12 = i11;
   14309          42 :     break;
   14310          42 :    }
   14311          42 :    i16 = HEAP32[i6 + (24 - i14) >> 2] | 0;
   14312          42 :    i18 = HEAP32[i6 + (12 - i14) >> 2] | 0;
   14313          42 :    do {
   14314          42 :     if ((i18 | 0) == (i10 | 0)) {
   14315          42 :      i19 = 16 - i14 | 0;
   14316          42 :      i18 = i6 + (i19 + 4) | 0;
   14317          42 :      i17 = HEAP32[i18 >> 2] | 0;
   14318          42 :      if ((i17 | 0) == 0) {
   14319          42 :       i18 = i6 + i19 | 0;
   14320          42 :       i17 = HEAP32[i18 >> 2] | 0;
   14321          42 :       if ((i17 | 0) == 0) {
   14322          42 :        i13 = 0;
   14323          42 :        break;
   14324          42 :       }
   14325          42 :      }
   14326          42 :      while (1) {
   14327          42 :       i19 = i17 + 20 | 0;
   14328          42 :       i20 = HEAP32[i19 >> 2] | 0;
   14329          42 :       if ((i20 | 0) != 0) {
   14330          42 :        i17 = i20;
   14331          42 :        i18 = i19;
   14332          42 :        continue;
   14333          42 :       }
   14334          42 :       i20 = i17 + 16 | 0;
   14335          42 :       i19 = HEAP32[i20 >> 2] | 0;
   14336          42 :       if ((i19 | 0) == 0) {
   14337          42 :        break;
   14338          42 :       } else {
   14339          42 :        i17 = i19;
   14340          42 :        i18 = i20;
   14341          42 :       }
   14342          42 :      }
   14343          42 :      if (i18 >>> 0 < i15 >>> 0) {
   14344          42 :       _abort();
   14345          42 :      } else {
   14346          42 :       HEAP32[i18 >> 2] = 0;
   14347          42 :       i13 = i17;
   14348          42 :       break;
   14349          42 :      }
   14350          42 :     } else {
   14351          42 :      i17 = HEAP32[i6 + (8 - i14) >> 2] | 0;
   14352          42 :      if (i17 >>> 0 < i15 >>> 0) {
   14353          42 :       _abort();
   14354          42 :      }
   14355          42 :      i19 = i17 + 12 | 0;
   14356          42 :      if ((HEAP32[i19 >> 2] | 0) != (i10 | 0)) {
   14357          42 :       _abort();
   14358          42 :      }
   14359          42 :      i15 = i18 + 8 | 0;
   14360          42 :      if ((HEAP32[i15 >> 2] | 0) == (i10 | 0)) {
   14361          42 :       HEAP32[i19 >> 2] = i18;
   14362          42 :       HEAP32[i15 >> 2] = i17;
   14363          42 :       i13 = i18;
   14364          42 :       break;
   14365          42 :      } else {
   14366          42 :       _abort();
   14367          42 :      }
   14368          42 :     }
   14369          42 :    } while (0);
   14370          42 :    if ((i16 | 0) != 0) {
   14371          42 :     i15 = HEAP32[i6 + (28 - i14) >> 2] | 0;
   14372          42 :     i17 = 13216 + (i15 << 2) | 0;
   14373          42 :     if ((i10 | 0) == (HEAP32[i17 >> 2] | 0)) {
   14374          42 :      HEAP32[i17 >> 2] = i13;
   14375          42 :      if ((i13 | 0) == 0) {
   14376          42 :       HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i15);
   14377          42 :       i2 = i10;
   14378          42 :       i12 = i11;
   14379          42 :       break;
   14380          42 :      }
   14381          42 :     } else {
   14382          42 :      if (i16 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14383          42 :       _abort();
   14384          42 :      }
   14385          42 :      i15 = i16 + 16 | 0;
   14386          42 :      if ((HEAP32[i15 >> 2] | 0) == (i10 | 0)) {
   14387          42 :       HEAP32[i15 >> 2] = i13;
   14388          42 :      } else {
   14389          42 :       HEAP32[i16 + 20 >> 2] = i13;
   14390          42 :      }
   14391          42 :      if ((i13 | 0) == 0) {
   14392          42 :       i2 = i10;
   14393          42 :       i12 = i11;
   14394          42 :       break;
   14395          42 :      }
   14396          42 :     }
   14397          42 :     if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14398          42 :      _abort();
   14399          42 :     }
   14400          42 :     HEAP32[i13 + 24 >> 2] = i16;
   14401          42 :     i14 = 16 - i14 | 0;
   14402          42 :     i15 = HEAP32[i6 + i14 >> 2] | 0;
   14403          42 :     do {
   14404          42 :      if ((i15 | 0) != 0) {
   14405          42 :       if (i15 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14406          42 :        _abort();
   14407          42 :       } else {
   14408          42 :        HEAP32[i13 + 16 >> 2] = i15;
   14409          42 :        HEAP32[i15 + 24 >> 2] = i13;
   14410          42 :        break;
   14411          42 :       }
   14412          42 :      }
   14413          42 :     } while (0);
   14414          42 :     i14 = HEAP32[i6 + (i14 + 4) >> 2] | 0;
   14415          42 :     if ((i14 | 0) != 0) {
   14416          42 :      if (i14 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14417          42 :       _abort();
   14418          42 :      } else {
   14419          42 :       HEAP32[i13 + 20 >> 2] = i14;
   14420          42 :       HEAP32[i14 + 24 >> 2] = i13;
   14421          42 :       i2 = i10;
   14422          42 :       i12 = i11;
   14423          42 :       break;
   14424          42 :      }
   14425          42 :     } else {
   14426          42 :      i2 = i10;
   14427          42 :      i12 = i11;
   14428          42 :     }
   14429          42 :    } else {
   14430          42 :     i2 = i10;
   14431          42 :     i12 = i11;
   14432          42 :    }
   14433          42 :   } else {
   14434          42 :    i2 = i6;
   14435          42 :    i12 = i7;
   14436          42 :   }
   14437          42 :  } while (0);
   14438          42 :  i10 = HEAP32[12928 >> 2] | 0;
   14439          42 :  if (i5 >>> 0 < i10 >>> 0) {
   14440          42 :   _abort();
   14441          42 :  }
   14442          42 :  i11 = i6 + (i7 + 4) | 0;
   14443          42 :  i13 = HEAP32[i11 >> 2] | 0;
   14444          42 :  if ((i13 & 2 | 0) == 0) {
   14445          42 :   if ((i5 | 0) == (HEAP32[12936 >> 2] | 0)) {
   14446          42 :    i20 = (HEAP32[12924 >> 2] | 0) + i12 | 0;
   14447          42 :    HEAP32[12924 >> 2] = i20;
   14448          42 :    HEAP32[12936 >> 2] = i2;
   14449          42 :    HEAP32[i2 + 4 >> 2] = i20 | 1;
   14450          42 :    if ((i2 | 0) != (HEAP32[12932 >> 2] | 0)) {
   14451          42 :     STACKTOP = i1;
   14452          42 :     return;
   14453          42 :    }
   14454          42 :    HEAP32[12932 >> 2] = 0;
   14455          42 :    HEAP32[12920 >> 2] = 0;
   14456          42 :    STACKTOP = i1;
   14457          42 :    return;
   14458          42 :   }
   14459          42 :   if ((i5 | 0) == (HEAP32[12932 >> 2] | 0)) {
   14460          42 :    i20 = (HEAP32[12920 >> 2] | 0) + i12 | 0;
   14461          42 :    HEAP32[12920 >> 2] = i20;
   14462          42 :    HEAP32[12932 >> 2] = i2;
   14463          42 :    HEAP32[i2 + 4 >> 2] = i20 | 1;
   14464          42 :    HEAP32[i2 + i20 >> 2] = i20;
   14465          42 :    STACKTOP = i1;
   14466          42 :    return;
   14467          42 :   }
   14468          42 :   i12 = (i13 & -8) + i12 | 0;
   14469          42 :   i11 = i13 >>> 3;
   14470          42 :   do {
   14471          42 :    if (!(i13 >>> 0 < 256)) {
   14472          42 :     i9 = HEAP32[i6 + (i7 + 24) >> 2] | 0;
   14473          42 :     i11 = HEAP32[i6 + (i7 + 12) >> 2] | 0;
   14474          42 :     do {
   14475          42 :      if ((i11 | 0) == (i5 | 0)) {
   14476          42 :       i13 = i6 + (i7 + 20) | 0;
   14477          42 :       i11 = HEAP32[i13 >> 2] | 0;
   14478          42 :       if ((i11 | 0) == 0) {
   14479          42 :        i13 = i6 + (i7 + 16) | 0;
   14480          42 :        i11 = HEAP32[i13 >> 2] | 0;
   14481          42 :        if ((i11 | 0) == 0) {
   14482          42 :         i8 = 0;
   14483          42 :         break;
   14484          42 :        }
   14485          42 :       }
   14486          42 :       while (1) {
   14487          42 :        i15 = i11 + 20 | 0;
   14488          42 :        i14 = HEAP32[i15 >> 2] | 0;
   14489          42 :        if ((i14 | 0) != 0) {
   14490          42 :         i11 = i14;
   14491          42 :         i13 = i15;
   14492          42 :         continue;
   14493          42 :        }
   14494          42 :        i14 = i11 + 16 | 0;
   14495          42 :        i15 = HEAP32[i14 >> 2] | 0;
   14496          42 :        if ((i15 | 0) == 0) {
   14497          42 :         break;
   14498          42 :        } else {
   14499          42 :         i11 = i15;
   14500          42 :         i13 = i14;
   14501          42 :        }
   14502          42 :       }
   14503          42 :       if (i13 >>> 0 < i10 >>> 0) {
   14504          42 :        _abort();
   14505          42 :       } else {
   14506          42 :        HEAP32[i13 >> 2] = 0;
   14507          42 :        i8 = i11;
   14508          42 :        break;
   14509          42 :       }
   14510          42 :      } else {
   14511          42 :       i13 = HEAP32[i6 + (i7 + 8) >> 2] | 0;
   14512          42 :       if (i13 >>> 0 < i10 >>> 0) {
   14513          42 :        _abort();
   14514          42 :       }
   14515          42 :       i10 = i13 + 12 | 0;
   14516          42 :       if ((HEAP32[i10 >> 2] | 0) != (i5 | 0)) {
   14517          42 :        _abort();
   14518          42 :       }
   14519          42 :       i14 = i11 + 8 | 0;
   14520          42 :       if ((HEAP32[i14 >> 2] | 0) == (i5 | 0)) {
   14521          42 :        HEAP32[i10 >> 2] = i11;
   14522          42 :        HEAP32[i14 >> 2] = i13;
   14523          42 :        i8 = i11;
   14524          42 :        break;
   14525          42 :       } else {
   14526          42 :        _abort();
   14527          42 :       }
   14528          42 :      }
   14529          42 :     } while (0);
   14530          42 :     if ((i9 | 0) != 0) {
   14531          42 :      i10 = HEAP32[i6 + (i7 + 28) >> 2] | 0;
   14532          42 :      i11 = 13216 + (i10 << 2) | 0;
   14533          42 :      if ((i5 | 0) == (HEAP32[i11 >> 2] | 0)) {
   14534          42 :       HEAP32[i11 >> 2] = i8;
   14535          42 :       if ((i8 | 0) == 0) {
   14536          42 :        HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i10);
   14537          42 :        break;
   14538          42 :       }
   14539          42 :      } else {
   14540          42 :       if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14541          42 :        _abort();
   14542          42 :       }
   14543          42 :       i10 = i9 + 16 | 0;
   14544          42 :       if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
   14545          42 :        HEAP32[i10 >> 2] = i8;
   14546          42 :       } else {
   14547          42 :        HEAP32[i9 + 20 >> 2] = i8;
   14548          42 :       }
   14549          42 :       if ((i8 | 0) == 0) {
   14550          42 :        break;
   14551          42 :       }
   14552          42 :      }
   14553          42 :      if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14554          42 :       _abort();
   14555          42 :      }
   14556          42 :      HEAP32[i8 + 24 >> 2] = i9;
   14557          42 :      i5 = HEAP32[i6 + (i7 + 16) >> 2] | 0;
   14558          42 :      do {
   14559          42 :       if ((i5 | 0) != 0) {
   14560          42 :        if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14561          42 :         _abort();
   14562          42 :        } else {
   14563          42 :         HEAP32[i8 + 16 >> 2] = i5;
   14564          42 :         HEAP32[i5 + 24 >> 2] = i8;
   14565          42 :         break;
   14566          42 :        }
   14567          42 :       }
   14568          42 :      } while (0);
   14569          42 :      i5 = HEAP32[i6 + (i7 + 20) >> 2] | 0;
   14570          42 :      if ((i5 | 0) != 0) {
   14571          42 :       if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14572          42 :        _abort();
   14573          42 :       } else {
   14574          42 :        HEAP32[i8 + 20 >> 2] = i5;
   14575          42 :        HEAP32[i5 + 24 >> 2] = i8;
   14576          42 :        break;
   14577          42 :       }
   14578          42 :      }
   14579          42 :     }
   14580          42 :    } else {
   14581          42 :     i8 = HEAP32[i6 + (i7 + 8) >> 2] | 0;
   14582          42 :     i6 = HEAP32[i6 + (i7 + 12) >> 2] | 0;
   14583          42 :     i7 = 12952 + (i11 << 1 << 2) | 0;
   14584          42 :     if ((i8 | 0) != (i7 | 0)) {
   14585          42 :      if (i8 >>> 0 < i10 >>> 0) {
   14586          42 :       _abort();
   14587          42 :      }
   14588          42 :      if ((HEAP32[i8 + 12 >> 2] | 0) != (i5 | 0)) {
   14589          42 :       _abort();
   14590          42 :      }
   14591          42 :     }
   14592          42 :     if ((i6 | 0) == (i8 | 0)) {
   14593          42 :      HEAP32[3228] = HEAP32[3228] & ~(1 << i11);
   14594          42 :      break;
   14595          42 :     }
   14596          42 :     if ((i6 | 0) != (i7 | 0)) {
   14597          42 :      if (i6 >>> 0 < i10 >>> 0) {
   14598          42 :       _abort();
   14599          42 :      }
   14600          42 :      i7 = i6 + 8 | 0;
   14601          42 :      if ((HEAP32[i7 >> 2] | 0) == (i5 | 0)) {
   14602          42 :       i9 = i7;
   14603          42 :      } else {
   14604          42 :       _abort();
   14605          42 :      }
   14606          42 :     } else {
   14607          42 :      i9 = i6 + 8 | 0;
   14608          42 :     }
   14609          42 :     HEAP32[i8 + 12 >> 2] = i6;
   14610          42 :     HEAP32[i9 >> 2] = i8;
   14611          42 :    }
   14612          42 :   } while (0);
   14613          42 :   HEAP32[i2 + 4 >> 2] = i12 | 1;
   14614          42 :   HEAP32[i2 + i12 >> 2] = i12;
   14615          42 :   if ((i2 | 0) == (HEAP32[12932 >> 2] | 0)) {
   14616          42 :    HEAP32[12920 >> 2] = i12;
   14617          42 :    STACKTOP = i1;
   14618          42 :    return;
   14619          42 :   }
   14620          42 :  } else {
   14621          42 :   HEAP32[i11 >> 2] = i13 & -2;
   14622          42 :   HEAP32[i2 + 4 >> 2] = i12 | 1;
   14623          42 :   HEAP32[i2 + i12 >> 2] = i12;
   14624          42 :  }
   14625          42 :  i6 = i12 >>> 3;
   14626          42 :  if (i12 >>> 0 < 256) {
   14627          42 :   i7 = i6 << 1;
   14628          42 :   i5 = 12952 + (i7 << 2) | 0;
   14629          42 :   i8 = HEAP32[3228] | 0;
   14630          42 :   i6 = 1 << i6;
   14631          42 :   if ((i8 & i6 | 0) != 0) {
   14632          42 :    i7 = 12952 + (i7 + 2 << 2) | 0;
   14633          42 :    i6 = HEAP32[i7 >> 2] | 0;
   14634          42 :    if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14635          42 :     _abort();
   14636          42 :    } else {
   14637          42 :     i4 = i7;
   14638          42 :     i3 = i6;
   14639          42 :    }
   14640          42 :   } else {
   14641          42 :    HEAP32[3228] = i8 | i6;
   14642          42 :    i4 = 12952 + (i7 + 2 << 2) | 0;
   14643          42 :    i3 = i5;
   14644          42 :   }
   14645          42 :   HEAP32[i4 >> 2] = i2;
   14646          42 :   HEAP32[i3 + 12 >> 2] = i2;
   14647          42 :   HEAP32[i2 + 8 >> 2] = i3;
   14648          42 :   HEAP32[i2 + 12 >> 2] = i5;
   14649          42 :   STACKTOP = i1;
   14650          42 :   return;
   14651          42 :  }
   14652          42 :  i3 = i12 >>> 8;
   14653          42 :  if ((i3 | 0) != 0) {
   14654          42 :   if (i12 >>> 0 > 16777215) {
   14655          42 :    i3 = 31;
   14656          42 :   } else {
   14657          42 :    i19 = (i3 + 1048320 | 0) >>> 16 & 8;
   14658          42 :    i20 = i3 << i19;
   14659          42 :    i18 = (i20 + 520192 | 0) >>> 16 & 4;
   14660          42 :    i20 = i20 << i18;
   14661          42 :    i3 = (i20 + 245760 | 0) >>> 16 & 2;
   14662          42 :    i3 = 14 - (i18 | i19 | i3) + (i20 << i3 >>> 15) | 0;
   14663          42 :    i3 = i12 >>> (i3 + 7 | 0) & 1 | i3 << 1;
   14664          42 :   }
   14665          42 :  } else {
   14666          42 :   i3 = 0;
   14667          42 :  }
   14668          42 :  i6 = 13216 + (i3 << 2) | 0;
   14669          42 :  HEAP32[i2 + 28 >> 2] = i3;
   14670          42 :  HEAP32[i2 + 20 >> 2] = 0;
   14671          42 :  HEAP32[i2 + 16 >> 2] = 0;
   14672          42 :  i5 = HEAP32[12916 >> 2] | 0;
   14673          42 :  i4 = 1 << i3;
   14674          42 :  if ((i5 & i4 | 0) == 0) {
   14675          42 :   HEAP32[12916 >> 2] = i5 | i4;
   14676          42 :   HEAP32[i6 >> 2] = i2;
   14677          42 :   HEAP32[i2 + 24 >> 2] = i6;
   14678          42 :   HEAP32[i2 + 12 >> 2] = i2;
   14679          42 :   HEAP32[i2 + 8 >> 2] = i2;
   14680          42 :   STACKTOP = i1;
   14681          42 :   return;
   14682          42 :  }
   14683          42 :  i4 = HEAP32[i6 >> 2] | 0;
   14684          42 :  if ((i3 | 0) == 31) {
   14685          42 :   i3 = 0;
   14686          42 :  } else {
   14687          42 :   i3 = 25 - (i3 >>> 1) | 0;
   14688          42 :  }
   14689          42 :  L194 : do {
   14690          42 :   if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i12 | 0)) {
   14691          42 :    i3 = i12 << i3;
   14692          42 :    i6 = i4;
   14693          42 :    while (1) {
   14694          42 :     i5 = i6 + (i3 >>> 31 << 2) + 16 | 0;
   14695          42 :     i4 = HEAP32[i5 >> 2] | 0;
   14696          42 :     if ((i4 | 0) == 0) {
   14697          42 :      break;
   14698          42 :     }
   14699          42 :     if ((HEAP32[i4 + 4 >> 2] & -8 | 0) == (i12 | 0)) {
   14700          42 :      break L194;
   14701          42 :     } else {
   14702          42 :      i3 = i3 << 1;
   14703          42 :      i6 = i4;
   14704          42 :     }
   14705          42 :    }
   14706          42 :    if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   14707          42 :     _abort();
   14708          42 :    }
   14709          42 :    HEAP32[i5 >> 2] = i2;
   14710          42 :    HEAP32[i2 + 24 >> 2] = i6;
   14711          42 :    HEAP32[i2 + 12 >> 2] = i2;
   14712          42 :    HEAP32[i2 + 8 >> 2] = i2;
   14713          42 :    STACKTOP = i1;
   14714          42 :    return;
   14715          42 :   }
   14716          42 :  } while (0);
   14717          42 :  i3 = i4 + 8 | 0;
   14718          42 :  i6 = HEAP32[i3 >> 2] | 0;
   14719          42 :  i5 = HEAP32[12928 >> 2] | 0;
   14720          42 :  if (i4 >>> 0 < i5 >>> 0) {
   14721          42 :   _abort();
   14722          42 :  }
   14723          42 :  if (i6 >>> 0 < i5 >>> 0) {
   14724          42 :   _abort();
   14725          42 :  }
   14726          42 :  HEAP32[i6 + 12 >> 2] = i2;
   14727          42 :  HEAP32[i3 >> 2] = i2;
   14728          42 :  HEAP32[i2 + 8 >> 2] = i6;
   14729          42 :  HEAP32[i2 + 12 >> 2] = i4;
   14730          42 :  HEAP32[i2 + 24 >> 2] = 0;
   14731          42 :  STACKTOP = i1;
   14732          42 :  return;
   14733          42 : }
   14734       45175 : function _singlestep(i2) {
   14735       45175 :  i2 = i2 | 0;
   14736       45175 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
   14737       45175 :  i1 = STACKTOP;
   14738       45175 :  STACKTOP = STACKTOP + 16 | 0;
   14739       45175 :  i14 = i1;
   14740       45175 :  i3 = i2 + 12 | 0;
   14741       45175 :  i8 = HEAP32[i3 >> 2] | 0;
   14742       45175 :  i6 = i8 + 61 | 0;
   14743       45175 :  switch (HEAPU8[i6] | 0) {
   14744       45175 :  case 0:
   14745       45175 :   {
   14746       45175 :    if ((HEAP32[i8 + 84 >> 2] | 0) != 0) {
   14747       45175 :     i21 = i8 + 16 | 0;
   14748       45175 :     i22 = HEAP32[i21 >> 2] | 0;
   14749       45175 :     _propagatemark(i8);
   14750       45175 :     i22 = (HEAP32[i21 >> 2] | 0) - i22 | 0;
   14751       45175 :     STACKTOP = i1;
   14752       45175 :     return i22 | 0;
   14753       45175 :    }
   14754       45175 :    HEAP8[i6] = 1;
   14755       45175 :    i6 = i8 + 20 | 0;
   14756       45175 :    HEAP32[i6 >> 2] = HEAP32[i8 + 16 >> 2];
   14757       45175 :    i8 = HEAP32[i3 >> 2] | 0;
   14758       45175 :    i7 = i8 + 16 | 0;
   14759       45175 :    i14 = HEAP32[i7 >> 2] | 0;
   14760       45175 :    if ((i2 | 0) != 0 ? !((HEAP8[i2 + 5 | 0] & 3) == 0) : 0) {
   14761       45175 :     _reallymarkobject(i8, i2);
   14762       45175 :    }
   14763       45175 :    if ((HEAP32[i8 + 48 >> 2] & 64 | 0) != 0 ? (i13 = HEAP32[i8 + 40 >> 2] | 0, !((HEAP8[i13 + 5 | 0] & 3) == 0)) : 0) {
   14764       45175 :     _reallymarkobject(i8, i13);
   14765       45175 :    }
   14766       45175 :    _markmt(i8);
   14767       45175 :    i13 = i8 + 112 | 0;
   14768       45175 :    i15 = HEAP32[i8 + 132 >> 2] | 0;
   14769       45175 :    if ((i15 | 0) != (i13 | 0)) {
   14770       45175 :     do {
   14771       45175 :      if (((HEAP8[i15 + 5 | 0] & 7) == 0 ? (i12 = HEAP32[i15 + 8 >> 2] | 0, (HEAP32[i12 + 8 >> 2] & 64 | 0) != 0) : 0) ? (i11 = HEAP32[i12 >> 2] | 0, !((HEAP8[i11 + 5 | 0] & 3) == 0)) : 0) {
   14772       45175 :       _reallymarkobject(i8, i11);
   14773       45175 :      }
   14774       45175 :      i15 = HEAP32[i15 + 20 >> 2] | 0;
   14775       45175 :     } while ((i15 | 0) != (i13 | 0));
   14776       45175 :    }
   14777       45175 :    i16 = i8 + 84 | 0;
   14778       45175 :    if ((HEAP32[i16 >> 2] | 0) != 0) {
   14779       45175 :     do {
   14780       45175 :      _propagatemark(i8);
   14781       45175 :     } while ((HEAP32[i16 >> 2] | 0) != 0);
   14782       45175 :    }
   14783       45175 :    i17 = (HEAP32[i7 >> 2] | 0) - i14 | 0;
   14784       45175 :    i11 = i8 + 92 | 0;
   14785       45175 :    i12 = HEAP32[i11 >> 2] | 0;
   14786       45175 :    i21 = i8 + 88 | 0;
   14787       45175 :    i22 = HEAP32[i21 >> 2] | 0;
   14788       45175 :    i15 = i8 + 96 | 0;
   14789       45175 :    i13 = HEAP32[i15 >> 2] | 0;
   14790       45175 :    HEAP32[i15 >> 2] = 0;
   14791       45175 :    HEAP32[i21 >> 2] = 0;
   14792       45175 :    HEAP32[i11 >> 2] = 0;
   14793       45175 :    HEAP32[i16 >> 2] = i22;
   14794       45175 :    if ((i22 | 0) != 0) {
   14795       45175 :     do {
   14796       45175 :      _propagatemark(i8);
   14797       45175 :     } while ((HEAP32[i16 >> 2] | 0) != 0);
   14798       45175 :    }
   14799       45175 :    HEAP32[i16 >> 2] = i12;
   14800       45175 :    if ((i12 | 0) != 0) {
   14801       45175 :     do {
   14802       45175 :      _propagatemark(i8);
   14803       45175 :     } while ((HEAP32[i16 >> 2] | 0) != 0);
   14804       45175 :    }
   14805       45175 :    HEAP32[i16 >> 2] = i13;
   14806       45175 :    if ((i13 | 0) != 0) {
   14807       45175 :     do {
   14808       45175 :      _propagatemark(i8);
   14809       45175 :     } while ((HEAP32[i16 >> 2] | 0) != 0);
   14810       45175 :    }
   14811       45175 :    i18 = HEAP32[i7 >> 2] | 0;
   14812       45175 :    while (1) {
   14813       45175 :     i13 = HEAP32[i15 >> 2] | 0;
   14814       45175 :     HEAP32[i15 >> 2] = 0;
   14815       45175 :     i12 = 0;
   14816       45175 :     L42 : while (1) {
   14817       45175 :      i14 = i13;
   14818       45175 :      while (1) {
   14819       45175 :       if ((i14 | 0) == 0) {
   14820       45175 :        break L42;
   14821       45175 :       }
   14822       45175 :       i13 = HEAP32[i14 + 24 >> 2] | 0;
   14823       45175 :       if ((_traverseephemeron(i8, i14) | 0) == 0) {
   14824       45175 :        i14 = i13;
   14825       45175 :       } else {
   14826       45175 :        break;
   14827       45175 :       }
   14828       45175 :      }
   14829       45175 :      if ((HEAP32[i16 >> 2] | 0) == 0) {
   14830       45175 :       i12 = 1;
   14831       45175 :       continue;
   14832       45175 :      }
   14833       45175 :      while (1) {
   14834       45175 :       _propagatemark(i8);
   14835       45175 :       if ((HEAP32[i16 >> 2] | 0) == 0) {
   14836       45175 :        i12 = 1;
   14837       45175 :        continue L42;
   14838       45175 :       }
   14839       45175 :      }
   14840       45175 :     }
   14841       45175 :     if ((i12 | 0) == 0) {
   14842       45175 :      break;
   14843       45175 :     }
   14844       45175 :    }
   14845       45175 :    _clearvalues(i8, HEAP32[i11 >> 2] | 0, 0);
   14846       45175 :    i14 = i8 + 100 | 0;
   14847       45175 :    _clearvalues(i8, HEAP32[i14 >> 2] | 0, 0);
   14848       45175 :    i13 = HEAP32[i11 >> 2] | 0;
   14849       45175 :    i12 = HEAP32[i14 >> 2] | 0;
   14850       45175 :    i21 = HEAP32[i7 >> 2] | 0;
   14851       45175 :    i20 = HEAP32[i3 >> 2] | 0;
   14852       45175 :    i19 = i20 + 104 | 0;
   14853       45175 :    while (1) {
   14854       45175 :     i22 = HEAP32[i19 >> 2] | 0;
   14855       45175 :     if ((i22 | 0) == 0) {
   14856       45175 :      break;
   14857       45175 :     } else {
   14858       45175 :      i19 = i22;
   14859       45175 :     }
   14860       45175 :    }
   14861       45175 :    i17 = i17 - i18 + i21 | 0;
   14862       45175 :    i20 = i20 + 72 | 0;
   14863       45175 :    i21 = HEAP32[i20 >> 2] | 0;
   14864       45175 :    L55 : do {
   14865       45175 :     if ((i21 | 0) != 0) {
   14866       45175 :      while (1) {
   14867       45175 :       i18 = i21;
   14868       45175 :       while (1) {
   14869       45175 :        i22 = i18 + 5 | 0;
   14870       45175 :        i21 = HEAP8[i22] | 0;
   14871       45175 :        if ((i21 & 3) == 0) {
   14872       45175 :         break;
   14873       45175 :        }
   14874       45175 :        HEAP8[i22] = i21 & 255 | 8;
   14875       45175 :        HEAP32[i20 >> 2] = HEAP32[i18 >> 2];
   14876       45175 :        HEAP32[i18 >> 2] = HEAP32[i19 >> 2];
   14877       45175 :        HEAP32[i19 >> 2] = i18;
   14878       45175 :        i19 = HEAP32[i20 >> 2] | 0;
   14879       45175 :        if ((i19 | 0) == 0) {
   14880       45175 :         break L55;
   14881       45175 :        } else {
   14882       45175 :         i22 = i18;
   14883       45175 :         i18 = i19;
   14884       45175 :         i19 = i22;
   14885       45175 :        }
   14886       45175 :       }
   14887       45175 :       i21 = HEAP32[i18 >> 2] | 0;
   14888       45175 :       if ((i21 | 0) == 0) {
   14889       45175 :        break;
   14890       45175 :       } else {
   14891       45175 :        i20 = i18;
   14892       45175 :       }
   14893       45175 :      }
   14894       45175 :     }
   14895       45175 :    } while (0);
   14896       45175 :    i19 = HEAP32[i8 + 104 >> 2] | 0;
   14897       45175 :    if ((i19 | 0) != 0) {
   14898       45175 :     i18 = i8 + 60 | 0;
   14899       45175 :     do {
   14900       45175 :      i22 = i19 + 5 | 0;
   14901       45175 :      HEAP8[i22] = HEAP8[i18] & 3 | HEAP8[i22] & 184;
   14902       45175 :      _reallymarkobject(i8, i19);
   14903       45175 :      i19 = HEAP32[i19 >> 2] | 0;
   14904       45175 :     } while ((i19 | 0) != 0);
   14905       45175 :    }
   14906       45175 :    if ((HEAP32[i16 >> 2] | 0) != 0) {
   14907       45175 :     do {
   14908       45175 :      _propagatemark(i8);
   14909       45175 :     } while ((HEAP32[i16 >> 2] | 0) != 0);
   14910       45175 :    }
   14911       45175 :    i18 = HEAP32[i7 >> 2] | 0;
   14912       45175 :    while (1) {
   14913       45175 :     i20 = HEAP32[i15 >> 2] | 0;
   14914       45175 :     HEAP32[i15 >> 2] = 0;
   14915       45175 :     i19 = 0;
   14916       45175 :     L74 : while (1) {
   14917       45175 :      i21 = i20;
   14918       45175 :      while (1) {
   14919       45175 :       if ((i21 | 0) == 0) {
   14920       45175 :        break L74;
   14921       45175 :       }
   14922       45175 :       i20 = HEAP32[i21 + 24 >> 2] | 0;
   14923       45175 :       if ((_traverseephemeron(i8, i21) | 0) == 0) {
   14924       45175 :        i21 = i20;
   14925       45175 :       } else {
   14926       45175 :        break;
   14927       45175 :       }
   14928       45175 :      }
   14929       45175 :      if ((HEAP32[i16 >> 2] | 0) == 0) {
   14930       45175 :       i19 = 1;
   14931       45175 :       continue;
   14932       45175 :      }
   14933       45175 :      while (1) {
   14934       45175 :       _propagatemark(i8);
   14935       45175 :       if ((HEAP32[i16 >> 2] | 0) == 0) {
   14936       45175 :        i19 = 1;
   14937       45175 :        continue L74;
   14938       45175 :       }
   14939       45175 :      }
   14940       45175 :     }
   14941       45175 :     if ((i19 | 0) == 0) {
   14942       45175 :      break;
   14943       45175 :     }
   14944       45175 :    }
   14945       45175 :    i16 = i17 - i18 | 0;
   14946       45175 :    i15 = HEAP32[i15 >> 2] | 0;
   14947       45175 :    if ((i15 | 0) != 0) {
   14948       45175 :     do {
   14949       45175 :      i22 = 1 << HEAPU8[i15 + 7 | 0];
   14950       45175 :      i19 = HEAP32[i15 + 16 >> 2] | 0;
   14951       45175 :      i17 = i19 + (i22 << 5) | 0;
   14952       45175 :      if ((i22 | 0) > 0) {
   14953       45175 :       do {
   14954       45175 :        i18 = i19 + 8 | 0;
   14955       45175 :        do {
   14956       45175 :         if ((HEAP32[i18 >> 2] | 0) != 0 ? (i9 = i19 + 24 | 0, i10 = HEAP32[i9 >> 2] | 0, (i10 & 64 | 0) != 0) : 0) {
   14957       45175 :          i20 = HEAP32[i19 + 16 >> 2] | 0;
   14958       45175 :          if ((i10 & 15 | 0) == 4) {
   14959       45175 :           if ((i20 | 0) == 0) {
   14960       45175 :            break;
   14961       45175 :           }
   14962       45175 :           if ((HEAP8[i20 + 5 | 0] & 3) == 0) {
   14963       45175 :            break;
   14964       45175 :           }
   14965       45175 :           _reallymarkobject(i8, i20);
   14966       45175 :           break;
   14967       45175 :          } else {
   14968       45175 :           i20 = i20 + 5 | 0;
   14969       45175 :           if ((HEAP8[i20] & 3) == 0) {
   14970       45175 :            break;
   14971       45175 :           }
   14972       45175 :           HEAP32[i18 >> 2] = 0;
   14973       45175 :           if ((HEAP8[i20] & 3) == 0) {
   14974       45175 :            break;
   14975       45175 :           }
   14976       45175 :           HEAP32[i9 >> 2] = 11;
   14977       45175 :           break;
   14978       45175 :          }
   14979       45175 :         }
   14980       45175 :        } while (0);
   14981       45175 :        i19 = i19 + 32 | 0;
   14982       45175 :       } while (i19 >>> 0 < i17 >>> 0);
   14983       45175 :      }
   14984       45175 :      i15 = HEAP32[i15 + 24 >> 2] | 0;
   14985       45175 :     } while ((i15 | 0) != 0);
   14986       45175 :    }
   14987       45175 :    i10 = HEAP32[i14 >> 2] | 0;
   14988       45175 :    if ((i10 | 0) != 0) {
   14989       45175 :     do {
   14990       45175 :      i22 = 1 << HEAPU8[i10 + 7 | 0];
   14991       45175 :      i17 = HEAP32[i10 + 16 >> 2] | 0;
   14992       45175 :      i9 = i17 + (i22 << 5) | 0;
   14993       45175 :      if ((i22 | 0) > 0) {
   14994       45175 :       do {
   14995       45175 :        i15 = i17 + 8 | 0;
   14996       45175 :        do {
   14997       45175 :         if ((HEAP32[i15 >> 2] | 0) != 0 ? (i5 = i17 + 24 | 0, i4 = HEAP32[i5 >> 2] | 0, (i4 & 64 | 0) != 0) : 0) {
   14998       45175 :          i18 = HEAP32[i17 + 16 >> 2] | 0;
   14999       45175 :          if ((i4 & 15 | 0) == 4) {
   15000       45175 :           if ((i18 | 0) == 0) {
   15001       45175 :            break;
   15002       45175 :           }
   15003       45175 :           if ((HEAP8[i18 + 5 | 0] & 3) == 0) {
   15004       45175 :            break;
   15005       45175 :           }
   15006       45175 :           _reallymarkobject(i8, i18);
   15007       45175 :           break;
   15008       45175 :          } else {
   15009       45175 :           i18 = i18 + 5 | 0;
   15010       45175 :           if ((HEAP8[i18] & 3) == 0) {
   15011       45175 :            break;
   15012       45175 :           }
   15013       45175 :           HEAP32[i15 >> 2] = 0;
   15014       45175 :           if ((HEAP8[i18] & 3) == 0) {
   15015       45175 :            break;
   15016       45175 :           }
   15017       45175 :           HEAP32[i5 >> 2] = 11;
   15018       45175 :           break;
   15019       45175 :          }
   15020       45175 :         }
   15021       45175 :        } while (0);
   15022       45175 :        i17 = i17 + 32 | 0;
   15023       45175 :       } while (i17 >>> 0 < i9 >>> 0);
   15024       45175 :      }
   15025       45175 :      i10 = HEAP32[i10 + 24 >> 2] | 0;
   15026       45175 :     } while ((i10 | 0) != 0);
   15027       45175 :    }
   15028       45175 :    _clearvalues(i8, HEAP32[i11 >> 2] | 0, i13);
   15029       45175 :    _clearvalues(i8, HEAP32[i14 >> 2] | 0, i12);
   15030       45175 :    i4 = i8 + 60 | 0;
   15031       45175 :    HEAP8[i4] = HEAPU8[i4] ^ 3;
   15032       45175 :    i4 = i16 + (HEAP32[i7 >> 2] | 0) | 0;
   15033       45175 :    HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i4;
   15034       45175 :    i3 = HEAP32[i3 >> 2] | 0;
   15035       45175 :    HEAP8[i3 + 61 | 0] = 2;
   15036       45175 :    HEAP32[i3 + 64 >> 2] = 0;
   15037       45175 :    i7 = i3 + 72 | 0;
   15038       45175 :    i5 = 0;
   15039       45175 :    do {
   15040       45175 :     i5 = i5 + 1 | 0;
   15041       45175 :     i6 = _sweeplist(i2, i7, 1) | 0;
   15042       45175 :    } while ((i6 | 0) == (i7 | 0));
   15043       45175 :    HEAP32[i3 + 80 >> 2] = i6;
   15044       45175 :    i6 = i3 + 68 | 0;
   15045       45175 :    i7 = 0;
   15046       45175 :    do {
   15047       45175 :     i7 = i7 + 1 | 0;
   15048       45175 :     i8 = _sweeplist(i2, i6, 1) | 0;
   15049       45175 :    } while ((i8 | 0) == (i6 | 0));
   15050       45175 :    HEAP32[i3 + 76 >> 2] = i8;
   15051       45175 :    i22 = ((i7 + i5 | 0) * 5 | 0) + i4 | 0;
   15052       45175 :    STACKTOP = i1;
   15053       45175 :    return i22 | 0;
   15054       45175 :   }
   15055       45175 :  case 2:
   15056       45175 :   {
   15057       45175 :    i3 = i8 + 64 | 0;
   15058       45175 :    i4 = i8 + 32 | 0;
   15059       45175 :    i8 = i8 + 24 | 0;
   15060       45175 :    i5 = 0;
   15061       45175 :    while (1) {
   15062       45175 :     i10 = HEAP32[i3 >> 2] | 0;
   15063       45175 :     i11 = i10 + i5 | 0;
   15064       45175 :     i9 = HEAP32[i4 >> 2] | 0;
   15065       45175 :     if ((i11 | 0) >= (i9 | 0)) {
   15066       45175 :      i2 = i10;
   15067       45175 :      break;
   15068       45175 :     }
   15069       45175 :     _sweeplist(i2, (HEAP32[i8 >> 2] | 0) + (i11 << 2) | 0, -3) | 0;
   15070       45175 :     i5 = i5 + 1 | 0;
   15071       45175 :     if ((i5 | 0) >= 80) {
   15072       45175 :      i7 = 96;
   15073       45175 :      break;
   15074       45175 :     }
   15075       45175 :    }
   15076       45175 :    if ((i7 | 0) == 96) {
   15077       45175 :     i2 = HEAP32[i3 >> 2] | 0;
   15078       45175 :     i9 = HEAP32[i4 >> 2] | 0;
   15079       45175 :    }
   15080       45175 :    i22 = i2 + i5 | 0;
   15081       45175 :    HEAP32[i3 >> 2] = i22;
   15082       45175 :    if ((i22 | 0) >= (i9 | 0)) {
   15083       45175 :     HEAP8[i6] = 3;
   15084       45175 :    }
   15085       45175 :    i22 = i5 * 5 | 0;
   15086       45175 :    STACKTOP = i1;
   15087       45175 :    return i22 | 0;
   15088       45175 :   }
   15089       45175 :  case 5:
   15090       45175 :   {
   15091       45175 :    i2 = i8 + 16 | 0;
   15092       45175 :    HEAP32[i2 >> 2] = HEAP32[i8 + 32 >> 2] << 2;
   15093       45175 :    i22 = i8 + 84 | 0;
   15094       45175 :    i3 = i8 + 172 | 0;
   15095       45175 :    HEAP32[i22 + 0 >> 2] = 0;
   15096       45175 :    HEAP32[i22 + 4 >> 2] = 0;
   15097       45175 :    HEAP32[i22 + 8 >> 2] = 0;
   15098       45175 :    HEAP32[i22 + 12 >> 2] = 0;
   15099       45175 :    HEAP32[i22 + 16 >> 2] = 0;
   15100       45175 :    i3 = HEAP32[i3 >> 2] | 0;
   15101       45175 :    if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
   15102       45175 :     _reallymarkobject(i8, i3);
   15103       45175 :    }
   15104       45175 :    if ((HEAP32[i8 + 48 >> 2] & 64 | 0) != 0 ? (i15 = HEAP32[i8 + 40 >> 2] | 0, !((HEAP8[i15 + 5 | 0] & 3) == 0)) : 0) {
   15105       45175 :     _reallymarkobject(i8, i15);
   15106       45175 :    }
   15107       45175 :    _markmt(i8);
   15108       45175 :    i4 = HEAP32[i8 + 104 >> 2] | 0;
   15109       45175 :    if ((i4 | 0) != 0) {
   15110       45175 :     i3 = i8 + 60 | 0;
   15111       45175 :     do {
   15112       45175 :      i22 = i4 + 5 | 0;
   15113       45175 :      HEAP8[i22] = HEAP8[i3] & 3 | HEAP8[i22] & 184;
   15114       45175 :      _reallymarkobject(i8, i4);
   15115       45175 :      i4 = HEAP32[i4 >> 2] | 0;
   15116       45175 :     } while ((i4 | 0) != 0);
   15117       45175 :    }
   15118       45175 :    HEAP8[i6] = 0;
   15119       45175 :    i22 = HEAP32[i2 >> 2] | 0;
   15120       45175 :    STACKTOP = i1;
   15121       45175 :    return i22 | 0;
   15122       45175 :   }
   15123       45175 :  case 3:
   15124       45175 :   {
   15125       45175 :    i3 = i8 + 80 | 0;
   15126       45175 :    i4 = HEAP32[i3 >> 2] | 0;
   15127       45175 :    if ((i4 | 0) == 0) {
   15128       45175 :     HEAP8[i6] = 4;
   15129       45175 :     i22 = 0;
   15130       45175 :     STACKTOP = i1;
   15131       45175 :     return i22 | 0;
   15132       45175 :    } else {
   15133       45175 :     HEAP32[i3 >> 2] = _sweeplist(i2, i4, 80) | 0;
   15134       45175 :     i22 = 400;
   15135       45175 :     STACKTOP = i1;
   15136       45175 :     return i22 | 0;
   15137       45175 :    }
   15138       45175 :   }
   15139       45175 :  case 4:
   15140       45175 :   {
   15141       45175 :    i4 = i8 + 76 | 0;
   15142       45175 :    i5 = HEAP32[i4 >> 2] | 0;
   15143       45175 :    if ((i5 | 0) != 0) {
   15144       45175 :     HEAP32[i4 >> 2] = _sweeplist(i2, i5, 80) | 0;
   15145       45175 :     i22 = 400;
   15146       45175 :     STACKTOP = i1;
   15147       45175 :     return i22 | 0;
   15148       45175 :    }
   15149       45175 :    HEAP32[i14 >> 2] = HEAP32[i8 + 172 >> 2];
   15150       45175 :    _sweeplist(i2, i14, 1) | 0;
   15151       45175 :    i3 = HEAP32[i3 >> 2] | 0;
   15152       45175 :    if ((HEAP8[i3 + 62 | 0] | 0) != 1) {
   15153       45175 :     i4 = (HEAP32[i3 + 32 >> 2] | 0) / 2 | 0;
   15154       45175 :     if ((HEAP32[i3 + 28 >> 2] | 0) >>> 0 < i4 >>> 0) {
   15155       45175 :      _luaS_resize(i2, i4);
   15156       45175 :     }
   15157       45175 :     i21 = i3 + 144 | 0;
   15158       45175 :     i22 = i3 + 152 | 0;
   15159       45175 :     HEAP32[i21 >> 2] = _luaM_realloc_(i2, HEAP32[i21 >> 2] | 0, HEAP32[i22 >> 2] | 0, 0) | 0;
   15160       45175 :     HEAP32[i22 >> 2] = 0;
   15161       45175 :    }
   15162       45175 :    HEAP8[i6] = 5;
   15163       45175 :    i22 = 5;
   15164       45175 :    STACKTOP = i1;
   15165       45175 :    return i22 | 0;
   15166       45175 :   }
   15167       45175 :  default:
   15168       45175 :   {
   15169       45175 :    i22 = 0;
   15170       45175 :    STACKTOP = i1;
   15171       45175 :    return i22 | 0;
   15172       45175 :   }
   15173       45175 :  }
   15174       45175 :  return 0;
   15175       45175 : }
   15176           1 : function _pmain(i3) {
   15177           1 :  i3 = i3 | 0;
   15178           1 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   15179           1 :  i1 = STACKTOP;
   15180           1 :  STACKTOP = STACKTOP + 16 | 0;
   15181           1 :  i2 = i1;
   15182           1 :  i7 = _lua_tointegerx(i3, 1, 0) | 0;
   15183           1 :  i4 = _lua_touserdata(i3, 2) | 0;
   15184           1 :  i5 = HEAP32[i4 >> 2] | 0;
   15185           1 :  if ((i5 | 0) != 0 ? (HEAP8[i5] | 0) != 0 : 0) {
   15186           1 :   HEAP32[20] = i5;
   15187           1 :  }
   15188           1 :  i12 = HEAP32[i4 + 4 >> 2] | 0;
   15189           1 :  do {
   15190           1 :   if ((i12 | 0) == 0) {
   15191           1 :    i5 = 0;
   15192           1 :    i6 = 0;
   15193           1 :    i8 = 0;
   15194           1 :    i9 = 1;
   15195           1 :    i10 = 1;
   15196           1 :   } else {
   15197           1 :    i9 = 0;
   15198           1 :    i8 = 0;
   15199           1 :    i11 = 0;
   15200           1 :    i6 = 0;
   15201           1 :    i5 = 1;
   15202           1 :    L6 : while (1) {
   15203           1 :     if ((HEAP8[i12] | 0) != 45) {
   15204           1 :      i10 = 18;
   15205           1 :      break;
   15206           1 :     }
   15207           1 :     switch (HEAP8[i12 + 1 | 0] | 0) {
   15208           1 :     case 108:
   15209           1 :      {
   15210           1 :       i10 = 12;
   15211           1 :       break;
   15212           1 :      }
   15213           1 :     case 69:
   15214           1 :      {
   15215           1 :       i9 = 1;
   15216           1 :       break;
   15217           1 :      }
   15218           1 :     case 45:
   15219           1 :      {
   15220           1 :       i10 = 7;
   15221           1 :       break L6;
   15222           1 :      }
   15223           1 :     case 105:
   15224           1 :      {
   15225           1 :       if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
   15226           1 :        i11 = 1;
   15227           1 :        i6 = 1;
   15228           1 :       } else {
   15229           1 :        i5 = -1;
   15230           1 :        break L6;
   15231           1 :       }
   15232           1 :       break;
   15233           1 :      }
   15234           1 :     case 101:
   15235           1 :      {
   15236           1 :       i8 = 1;
   15237           1 :       i10 = 12;
   15238           1 :       break;
   15239           1 :      }
   15240           1 :     case 118:
   15241           1 :      {
   15242           1 :       if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
   15243           1 :        i11 = 1;
   15244           1 :       } else {
   15245           1 :        i5 = -1;
   15246           1 :        break L6;
   15247           1 :       }
   15248           1 :       break;
   15249           1 :      }
   15250           1 :     case 0:
   15251           1 :      {
   15252           1 :       i10 = 18;
   15253           1 :       break L6;
   15254           1 :      }
   15255           1 :     default:
   15256           1 :      {
   15257           1 :       i10 = 16;
   15258           1 :       break L6;
   15259           1 :      }
   15260           1 :     }
   15261           1 :     if ((i10 | 0) == 12) {
   15262           1 :      i10 = 0;
   15263           1 :      if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
   15264           1 :       i12 = i5 + 1 | 0;
   15265           1 :       i13 = HEAP32[i4 + (i12 << 2) >> 2] | 0;
   15266           1 :       if ((i13 | 0) == 0) {
   15267           1 :        i10 = 15;
   15268           1 :        break;
   15269           1 :       }
   15270           1 :       if ((HEAP8[i13] | 0) == 45) {
   15271           1 :        i10 = 15;
   15272           1 :        break;
   15273           1 :       } else {
   15274           1 :        i5 = i12;
   15275           1 :       }
   15276           1 :      }
   15277           1 :     }
   15278           1 :     i5 = i5 + 1 | 0;
   15279           1 :     i12 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
   15280           1 :     if ((i12 | 0) == 0) {
   15281           1 :      i5 = 0;
   15282           1 :      i12 = i9;
   15283           1 :      i10 = 23;
   15284           1 :      break;
   15285           1 :     }
   15286           1 :    }
   15287           1 :    if ((i10 | 0) == 7) {
   15288           1 :     if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
   15289           1 :      i5 = i5 + 1 | 0;
   15290           1 :      i5 = (HEAP32[i4 + (i5 << 2) >> 2] | 0) == 0 ? 0 : i5;
   15291           1 :      i10 = 18;
   15292           1 :     } else {
   15293           1 :      i5 = -1;
   15294           1 :     }
   15295           1 :    } else if ((i10 | 0) == 15) {
   15296           1 :     i5 = 0 - i5 | 0;
   15297           1 :     i10 = 18;
   15298           1 :    } else if ((i10 | 0) == 16) {
   15299           1 :     i5 = 0 - i5 | 0;
   15300           1 :     i10 = 18;
   15301           1 :    }
   15302           1 :    if ((i10 | 0) == 18) {
   15303           1 :     if ((i5 | 0) >= 0) {
   15304           1 :      i12 = i9;
   15305           1 :      i10 = 23;
   15306           1 :     }
   15307           1 :    }
   15308           1 :    if ((i10 | 0) == 23) {
   15309           1 :     if ((i11 | 0) == 0) {
   15310           1 :      i9 = 1;
   15311           1 :     } else {
   15312           1 :      i9 = HEAP32[_stdout >> 2] | 0;
   15313           1 :      _fwrite(440, 1, 51, i9 | 0) | 0;
   15314           1 :      _fputc(10, i9 | 0) | 0;
   15315           1 :      _fflush(i9 | 0) | 0;
   15316           1 :      i9 = 0;
   15317           1 :     }
   15318           1 :     if ((i12 | 0) == 0) {
   15319           1 :      i10 = 1;
   15320           1 :      break;
   15321           1 :     }
   15322           1 :     _lua_pushboolean(i3, 1);
   15323           1 :     _lua_setfield(i3, -1001e3, 96);
   15324           1 :     i10 = 0;
   15325           1 :     break;
   15326           1 :    }
   15327           1 :    i3 = HEAP32[i4 + (0 - i5 << 2) >> 2] | 0;
   15328           1 :    i4 = HEAP32[_stderr >> 2] | 0;
   15329           1 :    HEAP32[i2 >> 2] = HEAP32[20];
   15330           1 :    _fprintf(i4 | 0, 496, i2 | 0) | 0;
   15331           1 :    _fflush(i4 | 0) | 0;
   15332           1 :    i13 = HEAP8[i3 + 1 | 0] | 0;
   15333           1 :    if (i13 << 24 >> 24 == 108 | i13 << 24 >> 24 == 101) {
   15334           1 :     HEAP32[i2 >> 2] = i3;
   15335           1 :     _fprintf(i4 | 0, 504, i2 | 0) | 0;
   15336           1 :     _fflush(i4 | 0) | 0;
   15337           1 :    } else {
   15338           1 :     HEAP32[i2 >> 2] = i3;
   15339           1 :     _fprintf(i4 | 0, 528, i2 | 0) | 0;
   15340           1 :     _fflush(i4 | 0) | 0;
   15341           1 :    }
   15342           1 :    HEAP32[i2 >> 2] = HEAP32[20];
   15343           1 :    _fprintf(i4 | 0, 560, i2 | 0) | 0;
   15344           1 :    _fflush(i4 | 0) | 0;
   15345           1 :    i13 = 0;
   15346           1 :    STACKTOP = i1;
   15347           1 :    return i13 | 0;
   15348           1 :   }
   15349           1 :  } while (0);
   15350           1 :  _luaL_checkversion_(i3, 502.0);
   15351           1 :  _lua_gc(i3, 0, 0) | 0;
   15352           1 :  _luaL_openlibs(i3);
   15353           1 :  _lua_gc(i3, 1, 0) | 0;
   15354           1 :  do {
   15355           1 :   if (i10) {
   15356           1 :    i10 = _getenv(409 | 0) | 0;
   15357           1 :    if ((i10 | 0) == 0) {
   15358           1 :     i10 = _getenv(425 | 0) | 0;
   15359           1 :     if ((i10 | 0) == 0) {
   15360           1 :      break;
   15361           1 :     } else {
   15362           1 :      i11 = 424;
   15363           1 :     }
   15364           1 :    } else {
   15365           1 :     i11 = 408;
   15366           1 :    }
   15367           1 :    if ((HEAP8[i10] | 0) == 64) {
   15368           1 :     i13 = _luaL_loadfilex(i3, i10 + 1 | 0, 0) | 0;
   15369           1 :     if ((i13 | 0) == 0) {
   15370           1 :      i12 = _lua_gettop(i3) | 0;
   15371           1 :      _lua_pushcclosure(i3, 142, 0);
   15372           1 :      _lua_insert(i3, i12);
   15373           1 :      HEAP32[48] = i3;
   15374           1 :      _signal(2, 1) | 0;
   15375           1 :      i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0;
   15376           1 :      _signal(2, 0) | 0;
   15377           1 :      _lua_remove(i3, i12);
   15378           1 :      if ((i13 | 0) == 0) {
   15379           1 :       break;
   15380           1 :      }
   15381           1 :     }
   15382           1 :     if ((_lua_type(i3, -1) | 0) == 0) {
   15383           1 :      i13 = 0;
   15384           1 :      STACKTOP = i1;
   15385           1 :      return i13 | 0;
   15386           1 :     }
   15387           1 :     i11 = _lua_tolstring(i3, -1, 0) | 0;
   15388           1 :     i12 = HEAP32[20] | 0;
   15389           1 :     i10 = HEAP32[_stderr >> 2] | 0;
   15390           1 :     if ((i12 | 0) != 0) {
   15391           1 :      HEAP32[i2 >> 2] = i12;
   15392           1 :      _fprintf(i10 | 0, 496, i2 | 0) | 0;
   15393           1 :      _fflush(i10 | 0) | 0;
   15394           1 :     }
   15395           1 :     HEAP32[i2 >> 2] = (i11 | 0) == 0 ? 48 : i11;
   15396           1 :     _fprintf(i10 | 0, 912, i2 | 0) | 0;
   15397           1 :     _fflush(i10 | 0) | 0;
   15398           1 :     _lua_settop(i3, -2);
   15399           1 :     _lua_gc(i3, 2, 0) | 0;
   15400           1 :    } else {
   15401           1 :     i13 = _luaL_loadbufferx(i3, i10, _strlen(i10 | 0) | 0, i11, 0) | 0;
   15402           1 :     if ((i13 | 0) == 0) {
   15403           1 :      i12 = _lua_gettop(i3) | 0;
   15404           1 :      _lua_pushcclosure(i3, 142, 0);
   15405           1 :      _lua_insert(i3, i12);
   15406           1 :      HEAP32[48] = i3;
   15407           1 :      _signal(2, 1) | 0;
   15408           1 :      i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0;
   15409           1 :      _signal(2, 0) | 0;
   15410           1 :      _lua_remove(i3, i12);
   15411           1 :      if ((i13 | 0) == 0) {
   15412           1 :       break;
   15413           1 :      }
   15414           1 :     }
   15415           1 :     if ((_lua_type(i3, -1) | 0) == 0) {
   15416           1 :      i13 = 0;
   15417           1 :      STACKTOP = i1;
   15418           1 :      return i13 | 0;
   15419           1 :     }
   15420           1 :     i11 = _lua_tolstring(i3, -1, 0) | 0;
   15421           1 :     i10 = HEAP32[20] | 0;
   15422           1 :     i12 = HEAP32[_stderr >> 2] | 0;
   15423           1 :     if ((i10 | 0) != 0) {
   15424           1 :      HEAP32[i2 >> 2] = i10;
   15425           1 :      _fprintf(i12 | 0, 496, i2 | 0) | 0;
   15426           1 :      _fflush(i12 | 0) | 0;
   15427           1 :     }
   15428           1 :     HEAP32[i2 >> 2] = (i11 | 0) == 0 ? 48 : i11;
   15429           1 :     _fprintf(i12 | 0, 912, i2 | 0) | 0;
   15430           1 :     _fflush(i12 | 0) | 0;
   15431           1 :     _lua_settop(i3, -2);
   15432           1 :     _lua_gc(i3, 2, 0) | 0;
   15433           1 :    }
   15434           1 :    if ((i13 | 0) != 0) {
   15435           1 :     i13 = 0;
   15436           1 :     STACKTOP = i1;
   15437           1 :     return i13 | 0;
   15438           1 :    }
   15439           1 :   }
   15440           1 :  } while (0);
   15441           1 :  i7 = (i5 | 0) > 0 ? i5 : i7;
   15442           1 :  L67 : do {
   15443           1 :   if ((i7 | 0) > 1) {
   15444           1 :    i10 = 1;
   15445           1 :    while (1) {
   15446           1 :     i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0;
   15447           1 :     i12 = HEAP8[i11 + 1 | 0] | 0;
   15448           1 :     if ((i12 | 0) == 108) {
   15449           1 :      i11 = i11 + 2 | 0;
   15450           1 :      if ((HEAP8[i11] | 0) == 0) {
   15451           1 :       i10 = i10 + 1 | 0;
   15452           1 :       i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0;
   15453           1 :      }
   15454           1 :      _lua_getglobal(i3, 400);
   15455           1 :      _lua_pushstring(i3, i11) | 0;
   15456           1 :      i12 = (_lua_gettop(i3) | 0) + -1 | 0;
   15457           1 :      _lua_pushcclosure(i3, 142, 0);
   15458           1 :      _lua_insert(i3, i12);
   15459           1 :      HEAP32[48] = i3;
   15460           1 :      _signal(2, 1) | 0;
   15461           1 :      i13 = _lua_pcallk(i3, 1, 1, i12, 0, 0) | 0;
   15462           1 :      _signal(2, 0) | 0;
   15463           1 :      _lua_remove(i3, i12);
   15464           1 :      if ((i13 | 0) != 0) {
   15465           1 :       i10 = 58;
   15466           1 :       break;
   15467           1 :      }
   15468           1 :      _lua_setglobal(i3, i11);
   15469           1 :     } else if ((i12 | 0) == 101) {
   15470           1 :      i11 = i11 + 2 | 0;
   15471           1 :      if ((HEAP8[i11] | 0) == 0) {
   15472           1 :       i10 = i10 + 1 | 0;
   15473           1 :       i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0;
   15474           1 :      }
   15475           1 :      if ((_luaL_loadbufferx(i3, i11, _strlen(i11 | 0) | 0, 384, 0) | 0) != 0) {
   15476           1 :       i10 = 50;
   15477           1 :       break;
   15478           1 :      }
   15479           1 :      i12 = _lua_gettop(i3) | 0;
   15480           1 :      _lua_pushcclosure(i3, 142, 0);
   15481           1 :      _lua_insert(i3, i12);
   15482           1 :      HEAP32[48] = i3;
   15483           1 :      _signal(2, 1) | 0;
   15484           1 :      i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0;
   15485           1 :      _signal(2, 0) | 0;
   15486           1 :      _lua_remove(i3, i12);
   15487           1 :      if ((i13 | 0) != 0) {
   15488           1 :       i10 = 50;
   15489           1 :       break;
   15490           1 :      }
   15491           1 :     }
   15492           1 :     i10 = i10 + 1 | 0;
   15493           1 :     if ((i10 | 0) >= (i7 | 0)) {
   15494           1 :      break L67;
   15495           1 :     }
   15496           1 :    }
   15497           1 :    if ((i10 | 0) == 50) {
   15498           1 :     if ((_lua_type(i3, -1) | 0) == 0) {
   15499           1 :      i13 = 0;
   15500           1 :      STACKTOP = i1;
   15501           1 :      return i13 | 0;
   15502           1 :     }
   15503           1 :     i5 = _lua_tolstring(i3, -1, 0) | 0;
   15504           1 :     i6 = HEAP32[20] | 0;
   15505           1 :     i4 = HEAP32[_stderr >> 2] | 0;
   15506           1 :     if ((i6 | 0) != 0) {
   15507           1 :      HEAP32[i2 >> 2] = i6;
   15508           1 :      _fprintf(i4 | 0, 496, i2 | 0) | 0;
   15509           1 :      _fflush(i4 | 0) | 0;
   15510           1 :     }
   15511           1 :     HEAP32[i2 >> 2] = (i5 | 0) == 0 ? 48 : i5;
   15512           1 :     _fprintf(i4 | 0, 912, i2 | 0) | 0;
   15513           1 :     _fflush(i4 | 0) | 0;
   15514           1 :     _lua_settop(i3, -2);
   15515           1 :     _lua_gc(i3, 2, 0) | 0;
   15516           1 :     i13 = 0;
   15517           1 :     STACKTOP = i1;
   15518           1 :     return i13 | 0;
   15519           1 :    } else if ((i10 | 0) == 58) {
   15520           1 :     if ((_lua_type(i3, -1) | 0) == 0) {
   15521           1 :      i13 = 0;
   15522           1 :      STACKTOP = i1;
   15523           1 :      return i13 | 0;
   15524           1 :     }
   15525           1 :     i5 = _lua_tolstring(i3, -1, 0) | 0;
   15526           1 :     i6 = HEAP32[20] | 0;
   15527           1 :     i4 = HEAP32[_stderr >> 2] | 0;
   15528           1 :     if ((i6 | 0) != 0) {
   15529           1 :      HEAP32[i2 >> 2] = i6;
   15530           1 :      _fprintf(i4 | 0, 496, i2 | 0) | 0;
   15531           1 :      _fflush(i4 | 0) | 0;
   15532           1 :     }
   15533           1 :     HEAP32[i2 >> 2] = (i5 | 0) == 0 ? 48 : i5;
   15534           1 :     _fprintf(i4 | 0, 912, i2 | 0) | 0;
   15535           1 :     _fflush(i4 | 0) | 0;
   15536           1 :     _lua_settop(i3, -2);
   15537           1 :     _lua_gc(i3, 2, 0) | 0;
   15538           1 :     i13 = 0;
   15539           1 :     STACKTOP = i1;
   15540           1 :     return i13 | 0;
   15541           1 :    }
   15542           1 :   }
   15543           1 :  } while (0);
   15544           1 :  do {
   15545           1 :   if ((i5 | 0) != 0) {
   15546           1 :    i10 = 0;
   15547           1 :    while (1) {
   15548           1 :     if ((HEAP32[i4 + (i10 << 2) >> 2] | 0) == 0) {
   15549           1 :      break;
   15550           1 :     } else {
   15551           1 :      i10 = i10 + 1 | 0;
   15552           1 :     }
   15553           1 :    }
   15554           1 :    i11 = i5 + 1 | 0;
   15555           1 :    i7 = i10 - i11 | 0;
   15556           1 :    _luaL_checkstack(i3, i7 + 3 | 0, 352);
   15557           1 :    if ((i11 | 0) < (i10 | 0)) {
   15558           1 :     i12 = i11;
   15559           1 :     do {
   15560           1 :      _lua_pushstring(i3, HEAP32[i4 + (i12 << 2) >> 2] | 0) | 0;
   15561           1 :      i12 = i12 + 1 | 0;
   15562           1 :     } while ((i12 | 0) != (i10 | 0));
   15563           1 :    }
   15564           1 :    _lua_createtable(i3, i7, i11);
   15565           1 :    if ((i10 | 0) > 0) {
   15566           1 :     i11 = 0;
   15567           1 :     do {
   15568           1 :      _lua_pushstring(i3, HEAP32[i4 + (i11 << 2) >> 2] | 0) | 0;
   15569           1 :      _lua_rawseti(i3, -2, i11 - i5 | 0);
   15570           1 :      i11 = i11 + 1 | 0;
   15571           1 :     } while ((i11 | 0) != (i10 | 0));
   15572           1 :    }
   15573           1 :    _lua_setglobal(i3, 328);
   15574           1 :    i10 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
   15575           1 :    if ((_strcmp(i10, 336) | 0) == 0) {
   15576           1 :     i13 = (_strcmp(HEAP32[i4 + (i5 + -1 << 2) >> 2] | 0, 344) | 0) == 0;
   15577           1 :     i10 = i13 ? i10 : 0;
   15578           1 :    }
   15579           1 :    i10 = _luaL_loadfilex(i3, i10, 0) | 0;
   15580           1 :    i4 = ~i7;
   15581           1 :    _lua_insert(i3, i4);
   15582           1 :    if ((i10 | 0) == 0) {
   15583           1 :     i13 = (_lua_gettop(i3) | 0) - i7 | 0;
   15584           1 :     _lua_pushcclosure(i3, 142, 0);
   15585           1 :     _lua_insert(i3, i13);
   15586           1 :     HEAP32[48] = i3;
   15587           1 :     _signal(2, 1) | 0;
   15588           1 :     i10 = _lua_pcallk(i3, i7, -1, i13, 0, 0) | 0;
   15589           1 :     _signal(2, 0) | 0;
   15590           1 :     _lua_remove(i3, i13);
   15591           1 :     if ((i10 | 0) == 0) {
   15592           1 :      break;
   15593           1 :     }
   15594           1 :    } else {
   15595           1 :     _lua_settop(i3, i4);
   15596           1 :    }
   15597           1 :    if ((_lua_type(i3, -1) | 0) != 0) {
   15598           1 :     i7 = _lua_tolstring(i3, -1, 0) | 0;
   15599           1 :     i11 = HEAP32[20] | 0;
   15600           1 :     i4 = HEAP32[_stderr >> 2] | 0;
   15601           1 :     if ((i11 | 0) != 0) {
   15602           1 :      HEAP32[i2 >> 2] = i11;
   15603           1 :      _fprintf(i4 | 0, 496, i2 | 0) | 0;
   15604           1 :      _fflush(i4 | 0) | 0;
   15605           1 :     }
   15606           1 :     HEAP32[i2 >> 2] = (i7 | 0) == 0 ? 48 : i7;
   15607           1 :     _fprintf(i4 | 0, 912, i2 | 0) | 0;
   15608           1 :     _fflush(i4 | 0) | 0;
   15609           1 :     _lua_settop(i3, -2);
   15610           1 :     _lua_gc(i3, 2, 0) | 0;
   15611           1 :    }
   15612           1 :    if ((i10 | 0) != 0) {
   15613           1 :     i13 = 0;
   15614           1 :     STACKTOP = i1;
   15615           1 :     return i13 | 0;
   15616           1 :    }
   15617           1 :   }
   15618           1 :  } while (0);
   15619           1 :  if ((i6 | 0) == 0) {
   15620           1 :   if (!((i8 | i5 | 0) != 0 | i9 ^ 1)) {
   15621           1 :    i13 = HEAP32[_stdout >> 2] | 0;
   15622           1 :    _fwrite(440, 1, 51, i13 | 0) | 0;
   15623           1 :    _fputc(10, i13 | 0) | 0;
   15624           1 :    _fflush(i13 | 0) | 0;
   15625           1 :    _dotty(i3);
   15626           1 :   }
   15627           1 :  } else {
   15628           1 :   _dotty(i3);
   15629           1 :  }
   15630           1 :  _lua_pushboolean(i3, 1);
   15631           1 :  i13 = 1;
   15632           1 :  STACKTOP = i1;
   15633           1 :  return i13 | 0;
   15634           1 : }
   15635           1 : function _DumpFunction(i6, i2) {
   15636           0 :  i6 = i6 | 0;
   15637           0 :  i2 = i2 | 0;
   15638           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0;
   15639           0 :  i5 = STACKTOP;
   15640           0 :  STACKTOP = STACKTOP + 64 | 0;
   15641           0 :  i17 = i5 + 56 | 0;
   15642           0 :  i19 = i5 + 52 | 0;
   15643           0 :  i20 = i5 + 48 | 0;
   15644           0 :  i18 = i5;
   15645           0 :  i21 = i5 + 60 | 0;
   15646           0 :  i22 = i5 + 44 | 0;
   15647           0 :  i1 = i5 + 40 | 0;
   15648           0 :  i16 = i5 + 36 | 0;
   15649           0 :  i23 = i5 + 32 | 0;
   15650           0 :  i3 = i5 + 28 | 0;
   15651           0 :  i7 = i5 + 24 | 0;
   15652           0 :  i8 = i5 + 20 | 0;
   15653           0 :  i9 = i5 + 16 | 0;
   15654           0 :  i10 = i5 + 12 | 0;
   15655           0 :  i12 = i5 + 8 | 0;
   15656           0 :  HEAP32[i17 >> 2] = HEAP32[i6 + 64 >> 2];
   15657           0 :  i4 = i2 + 16 | 0;
   15658           0 :  i28 = HEAP32[i4 >> 2] | 0;
   15659           0 :  if ((i28 | 0) == 0) {
   15660           0 :   i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15661           0 :   HEAP32[i4 >> 2] = i28;
   15662           0 :  }
   15663           0 :  HEAP32[i17 >> 2] = HEAP32[i6 + 68 >> 2];
   15664           0 :  if ((i28 | 0) == 0) {
   15665           0 :   i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15666           0 :   HEAP32[i4 >> 2] = i28;
   15667           0 :  }
   15668           0 :  HEAP8[i17] = HEAP8[i6 + 76 | 0] | 0;
   15669           0 :  if ((i28 | 0) == 0) {
   15670           0 :   i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15671           0 :   HEAP32[i4 >> 2] = i28;
   15672           0 :  }
   15673           0 :  HEAP8[i17] = HEAP8[i6 + 77 | 0] | 0;
   15674           0 :  if ((i28 | 0) == 0) {
   15675           0 :   i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15676           0 :   HEAP32[i4 >> 2] = i28;
   15677           0 :  }
   15678           0 :  HEAP8[i17] = HEAP8[i6 + 78 | 0] | 0;
   15679           0 :  if ((i28 | 0) == 0) {
   15680           0 :   i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15681           0 :   HEAP32[i4 >> 2] = i28;
   15682           0 :  }
   15683           0 :  i25 = HEAP32[i6 + 12 >> 2] | 0;
   15684           0 :  i24 = HEAP32[i6 + 48 >> 2] | 0;
   15685           0 :  HEAP32[i23 >> 2] = i24;
   15686           0 :  if ((i28 | 0) == 0) {
   15687           0 :   i26 = i2 + 4 | 0;
   15688           0 :   i27 = i2 + 8 | 0;
   15689           0 :   i28 = FUNCTION_TABLE_iiiii[HEAP32[i26 >> 2] & 3](HEAP32[i2 >> 2] | 0, i23, 4, HEAP32[i27 >> 2] | 0) | 0;
   15690           0 :   HEAP32[i4 >> 2] = i28;
   15691           0 :   if ((i28 | 0) == 0) {
   15692           0 :    i28 = FUNCTION_TABLE_iiiii[HEAP32[i26 >> 2] & 3](HEAP32[i2 >> 2] | 0, i25, i24 << 2, HEAP32[i27 >> 2] | 0) | 0;
   15693           0 :    HEAP32[i4 >> 2] = i28;
   15694           0 :    i25 = HEAP32[i6 + 44 >> 2] | 0;
   15695           0 :    HEAP32[i22 >> 2] = i25;
   15696           0 :    if ((i28 | 0) == 0) {
   15697           0 :     i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i22, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15698           0 :     HEAP32[i4 >> 2] = i28;
   15699           0 :    }
   15700           0 :   } else {
   15701           0 :    i11 = 13;
   15702           0 :   }
   15703           0 :  } else {
   15704           0 :   i11 = 13;
   15705           0 :  }
   15706           0 :  if ((i11 | 0) == 13) {
   15707           0 :   i25 = HEAP32[i6 + 44 >> 2] | 0;
   15708           0 :   HEAP32[i22 >> 2] = i25;
   15709           0 :  }
   15710           0 :  if ((i25 | 0) > 0) {
   15711           0 :   i24 = i6 + 8 | 0;
   15712           0 :   i23 = i2 + 4 | 0;
   15713           0 :   i22 = i2 + 8 | 0;
   15714           0 :   i26 = 0;
   15715           0 :   do {
   15716           0 :    i30 = HEAP32[i24 >> 2] | 0;
   15717           0 :    i27 = i30 + (i26 << 4) | 0;
   15718           0 :    i30 = i30 + (i26 << 4) + 8 | 0;
   15719           0 :    i29 = HEAP32[i30 >> 2] | 0;
   15720           0 :    HEAP8[i17] = i29 & 15;
   15721           0 :    if ((i28 | 0) == 0) {
   15722           0 :     i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i22 >> 2] | 0) | 0;
   15723           0 :     HEAP32[i4 >> 2] = i28;
   15724           0 :     i29 = HEAP32[i30 >> 2] | 0;
   15725           0 :    }
   15726           0 :    i29 = i29 & 15;
   15727           0 :    do {
   15728           0 :     if ((i29 | 0) == 3) {
   15729           0 :      HEAPF64[i18 >> 3] = +HEAPF64[i27 >> 3];
   15730           0 :      if ((i28 | 0) == 0) {
   15731           0 :       i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i18, 8, HEAP32[i22 >> 2] | 0) | 0;
   15732           0 :       HEAP32[i4 >> 2] = i28;
   15733           0 :      }
   15734           0 :     } else if ((i29 | 0) == 1) {
   15735           0 :      HEAP8[i21] = HEAP32[i27 >> 2];
   15736           0 :      if ((i28 | 0) == 0) {
   15737           0 :       i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i21, 1, HEAP32[i22 >> 2] | 0) | 0;
   15738           0 :       HEAP32[i4 >> 2] = i28;
   15739           0 :      }
   15740           0 :     } else if ((i29 | 0) == 4) {
   15741           0 :      i27 = HEAP32[i27 >> 2] | 0;
   15742           0 :      if ((i27 | 0) == 0) {
   15743           0 :       HEAP32[i19 >> 2] = 0;
   15744           0 :       if ((i28 | 0) != 0) {
   15745           0 :        break;
   15746           0 :       }
   15747           0 :       i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i19, 4, HEAP32[i22 >> 2] | 0) | 0;
   15748           0 :       HEAP32[i4 >> 2] = i28;
   15749           0 :       break;
   15750           0 :      }
   15751           0 :      HEAP32[i20 >> 2] = (HEAP32[i27 + 12 >> 2] | 0) + 1;
   15752           0 :      if ((i28 | 0) == 0) {
   15753           0 :       i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i20, 4, HEAP32[i22 >> 2] | 0) | 0;
   15754           0 :       HEAP32[i4 >> 2] = i28;
   15755           0 :       if ((i28 | 0) == 0) {
   15756           0 :        i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i27 + 16 | 0, HEAP32[i20 >> 2] | 0, HEAP32[i22 >> 2] | 0) | 0;
   15757           0 :        HEAP32[i4 >> 2] = i28;
   15758           0 :       }
   15759           0 :      }
   15760           0 :     }
   15761           0 :    } while (0);
   15762           0 :    i26 = i26 + 1 | 0;
   15763           0 :   } while ((i26 | 0) != (i25 | 0));
   15764           0 :  }
   15765           0 :  i18 = HEAP32[i6 + 56 >> 2] | 0;
   15766           0 :  HEAP32[i17 >> 2] = i18;
   15767           0 :  if ((i28 | 0) == 0) {
   15768           0 :   i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15769           0 :   HEAP32[i4 >> 2] = i28;
   15770           0 :  }
   15771           0 :  if ((i18 | 0) > 0) {
   15772           0 :   i17 = i6 + 16 | 0;
   15773           0 :   i19 = 0;
   15774           0 :   do {
   15775           0 :    _DumpFunction(HEAP32[(HEAP32[i17 >> 2] | 0) + (i19 << 2) >> 2] | 0, i2);
   15776           0 :    i19 = i19 + 1 | 0;
   15777           0 :   } while ((i19 | 0) != (i18 | 0));
   15778           0 :   i28 = HEAP32[i4 >> 2] | 0;
   15779           0 :  }
   15780           0 :  i17 = i6 + 40 | 0;
   15781           0 :  i18 = HEAP32[i17 >> 2] | 0;
   15782           0 :  HEAP32[i16 >> 2] = i18;
   15783           0 :  if ((i28 | 0) == 0) {
   15784           0 :   i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i16, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15785           0 :   HEAP32[i4 >> 2] = i28;
   15786           0 :  }
   15787           0 :  if ((i18 | 0) > 0) {
   15788           0 :   i19 = i6 + 28 | 0;
   15789           0 :   i16 = i2 + 4 | 0;
   15790           0 :   i20 = i2 + 8 | 0;
   15791           0 :   i21 = 0;
   15792           0 :   do {
   15793           0 :    i22 = HEAP32[i19 >> 2] | 0;
   15794           0 :    HEAP8[i1] = HEAP8[i22 + (i21 << 3) + 4 | 0] | 0;
   15795           0 :    if ((i28 | 0) == 0) {
   15796           0 :     i28 = FUNCTION_TABLE_iiiii[HEAP32[i16 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 1, HEAP32[i20 >> 2] | 0) | 0;
   15797           0 :     HEAP32[i4 >> 2] = i28;
   15798           0 :     i22 = HEAP32[i19 >> 2] | 0;
   15799           0 :    }
   15800           0 :    HEAP8[i1] = HEAP8[i22 + (i21 << 3) + 5 | 0] | 0;
   15801           0 :    if ((i28 | 0) == 0) {
   15802           0 :     i28 = FUNCTION_TABLE_iiiii[HEAP32[i16 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 1, HEAP32[i20 >> 2] | 0) | 0;
   15803           0 :     HEAP32[i4 >> 2] = i28;
   15804           0 :    }
   15805           0 :    i21 = i21 + 1 | 0;
   15806           0 :   } while ((i21 | 0) != (i18 | 0));
   15807           0 :  }
   15808           0 :  i16 = i2 + 12 | 0;
   15809           0 :  if ((HEAP32[i16 >> 2] | 0) == 0 ? (i13 = HEAP32[i6 + 36 >> 2] | 0, (i13 | 0) != 0) : 0) {
   15810           0 :   HEAP32[i12 >> 2] = (HEAP32[i13 + 12 >> 2] | 0) + 1;
   15811           0 :   if ((i28 | 0) == 0 ? (i14 = i2 + 4 | 0, i15 = i2 + 8 | 0, i30 = FUNCTION_TABLE_iiiii[HEAP32[i14 >> 2] & 3](HEAP32[i2 >> 2] | 0, i12, 4, HEAP32[i15 >> 2] | 0) | 0, HEAP32[i4 >> 2] = i30, (i30 | 0) == 0) : 0) {
   15812           0 :    HEAP32[i4 >> 2] = FUNCTION_TABLE_iiiii[HEAP32[i14 >> 2] & 3](HEAP32[i2 >> 2] | 0, i13 + 16 | 0, HEAP32[i12 >> 2] | 0, HEAP32[i15 >> 2] | 0) | 0;
   15813           0 :   }
   15814           0 :  } else {
   15815           0 :   i12 = i10;
   15816           0 :   i11 = 50;
   15817           0 :  }
   15818           0 :  if ((i11 | 0) == 50) {
   15819           0 :   HEAP32[i10 >> 2] = 0;
   15820           0 :   if ((i28 | 0) == 0) {
   15821           0 :    HEAP32[i4 >> 2] = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i12, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15822           0 :   }
   15823           0 :  }
   15824           0 :  if ((HEAP32[i16 >> 2] | 0) == 0) {
   15825           0 :   i11 = HEAP32[i6 + 52 >> 2] | 0;
   15826           0 :  } else {
   15827           0 :   i11 = 0;
   15828           0 :  }
   15829           0 :  i10 = HEAP32[i6 + 20 >> 2] | 0;
   15830           0 :  HEAP32[i9 >> 2] = i11;
   15831           0 :  i14 = HEAP32[i4 >> 2] | 0;
   15832           0 :  if ((i14 | 0) == 0) {
   15833           0 :   i12 = i2 + 4 | 0;
   15834           0 :   i13 = i2 + 8 | 0;
   15835           0 :   i14 = FUNCTION_TABLE_iiiii[HEAP32[i12 >> 2] & 3](HEAP32[i2 >> 2] | 0, i9, 4, HEAP32[i13 >> 2] | 0) | 0;
   15836           0 :   HEAP32[i4 >> 2] = i14;
   15837           0 :   if ((i14 | 0) == 0) {
   15838           0 :    i14 = FUNCTION_TABLE_iiiii[HEAP32[i12 >> 2] & 3](HEAP32[i2 >> 2] | 0, i10, i11 << 2, HEAP32[i13 >> 2] | 0) | 0;
   15839           0 :    HEAP32[i4 >> 2] = i14;
   15840           0 :   }
   15841           0 :  }
   15842           0 :  if ((HEAP32[i16 >> 2] | 0) == 0) {
   15843           0 :   i9 = HEAP32[i6 + 60 >> 2] | 0;
   15844           0 :  } else {
   15845           0 :   i9 = 0;
   15846           0 :  }
   15847           0 :  HEAP32[i8 >> 2] = i9;
   15848           0 :  if ((i14 | 0) == 0) {
   15849           0 :   i14 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i8, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15850           0 :   HEAP32[i4 >> 2] = i14;
   15851           0 :  }
   15852           0 :  if ((i9 | 0) > 0) {
   15853           0 :   i10 = i6 + 24 | 0;
   15854           0 :   i11 = i2 + 4 | 0;
   15855           0 :   i8 = i2 + 8 | 0;
   15856           0 :   i12 = 0;
   15857           0 :   do {
   15858           0 :    i13 = HEAP32[(HEAP32[i10 >> 2] | 0) + (i12 * 12 | 0) >> 2] | 0;
   15859           0 :    if ((i13 | 0) == 0) {
   15860           0 :     HEAP32[i1 >> 2] = 0;
   15861           0 :     if ((i14 | 0) == 0) {
   15862           0 :      i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0;
   15863           0 :      HEAP32[i4 >> 2] = i14;
   15864           0 :     }
   15865           0 :    } else {
   15866           0 :     HEAP32[i3 >> 2] = (HEAP32[i13 + 12 >> 2] | 0) + 1;
   15867           0 :     if ((i14 | 0) == 0) {
   15868           0 :      i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i3, 4, HEAP32[i8 >> 2] | 0) | 0;
   15869           0 :      HEAP32[i4 >> 2] = i14;
   15870           0 :      if ((i14 | 0) == 0) {
   15871           0 :       i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i13 + 16 | 0, HEAP32[i3 >> 2] | 0, HEAP32[i8 >> 2] | 0) | 0;
   15872           0 :       HEAP32[i4 >> 2] = i14;
   15873           0 :      }
   15874           0 :     }
   15875           0 :    }
   15876           0 :    i13 = HEAP32[i10 >> 2] | 0;
   15877           0 :    HEAP32[i1 >> 2] = HEAP32[i13 + (i12 * 12 | 0) + 4 >> 2];
   15878           0 :    if ((i14 | 0) == 0) {
   15879           0 :     i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0;
   15880           0 :     HEAP32[i4 >> 2] = i14;
   15881           0 :     i13 = HEAP32[i10 >> 2] | 0;
   15882           0 :    }
   15883           0 :    HEAP32[i1 >> 2] = HEAP32[i13 + (i12 * 12 | 0) + 8 >> 2];
   15884           0 :    if ((i14 | 0) == 0) {
   15885           0 :     i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0;
   15886           0 :     HEAP32[i4 >> 2] = i14;
   15887           0 :    }
   15888           0 :    i12 = i12 + 1 | 0;
   15889           0 :   } while ((i12 | 0) != (i9 | 0));
   15890           0 :  }
   15891           0 :  if ((HEAP32[i16 >> 2] | 0) == 0) {
   15892           0 :   i8 = HEAP32[i17 >> 2] | 0;
   15893           0 :  } else {
   15894           0 :   i8 = 0;
   15895           0 :  }
   15896           0 :  HEAP32[i7 >> 2] = i8;
   15897           0 :  if ((i14 | 0) == 0) {
   15898           0 :   i14 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i7, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
   15899           0 :   HEAP32[i4 >> 2] = i14;
   15900           0 :  }
   15901           0 :  if ((i8 | 0) <= 0) {
   15902           0 :   STACKTOP = i5;
   15903           0 :   return;
   15904           0 :  }
   15905           0 :  i7 = i6 + 28 | 0;
   15906           0 :  i6 = i2 + 4 | 0;
   15907           0 :  i9 = i2 + 8 | 0;
   15908           0 :  i10 = 0;
   15909           0 :  do {
   15910           0 :   i11 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i10 << 3) >> 2] | 0;
   15911           0 :   if ((i11 | 0) == 0) {
   15912           0 :    HEAP32[i1 >> 2] = 0;
   15913           0 :    if ((i14 | 0) == 0) {
   15914           0 :     i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i9 >> 2] | 0) | 0;
   15915           0 :     HEAP32[i4 >> 2] = i14;
   15916           0 :    }
   15917           0 :   } else {
   15918           0 :    HEAP32[i3 >> 2] = (HEAP32[i11 + 12 >> 2] | 0) + 1;
   15919           0 :    if ((i14 | 0) == 0) {
   15920           0 :     i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i3, 4, HEAP32[i9 >> 2] | 0) | 0;
   15921           0 :     HEAP32[i4 >> 2] = i14;
   15922           0 :     if ((i14 | 0) == 0) {
   15923           0 :      i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i11 + 16 | 0, HEAP32[i3 >> 2] | 0, HEAP32[i9 >> 2] | 0) | 0;
   15924           0 :      HEAP32[i4 >> 2] = i14;
   15925           0 :     }
   15926           0 :    }
   15927           0 :   }
   15928           0 :   i10 = i10 + 1 | 0;
   15929           0 :  } while ((i10 | 0) != (i8 | 0));
   15930           0 :  STACKTOP = i5;
   15931           0 :  return;
   15932           1 : }
   15933           1 : function _LoadFunction(i2, i6) {
   15934           0 :  i2 = i2 | 0;
   15935           0 :  i6 = i6 | 0;
   15936           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
   15937           0 :  i1 = STACKTOP;
   15938           0 :  STACKTOP = STACKTOP + 16 | 0;
   15939           0 :  i3 = i1;
   15940           0 :  i5 = i1 + 8 | 0;
   15941           0 :  i4 = i2 + 4 | 0;
   15942           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   15943           0 :   _error(i2, 8824);
   15944           0 :  }
   15945           0 :  i8 = HEAP32[i3 >> 2] | 0;
   15946           0 :  if ((i8 | 0) < 0) {
   15947           0 :   _error(i2, 8872);
   15948           0 :  }
   15949           0 :  HEAP32[i6 + 64 >> 2] = i8;
   15950           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   15951           0 :   _error(i2, 8824);
   15952           0 :  }
   15953           0 :  i8 = HEAP32[i3 >> 2] | 0;
   15954           0 :  if ((i8 | 0) < 0) {
   15955           0 :   _error(i2, 8872);
   15956           0 :  }
   15957           0 :  HEAP32[i6 + 68 >> 2] = i8;
   15958           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
   15959           0 :   _error(i2, 8824);
   15960           0 :  }
   15961           0 :  HEAP8[i6 + 76 | 0] = HEAP8[i3] | 0;
   15962           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
   15963           0 :   _error(i2, 8824);
   15964           0 :  }
   15965           0 :  HEAP8[i6 + 77 | 0] = HEAP8[i3] | 0;
   15966           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
   15967           0 :   _error(i2, 8824);
   15968           0 :  }
   15969           0 :  HEAP8[i6 + 78 | 0] = HEAP8[i3] | 0;
   15970           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   15971           0 :   _error(i2, 8824);
   15972           0 :  }
   15973           0 :  i9 = HEAP32[i3 >> 2] | 0;
   15974           0 :  if ((i9 | 0) < 0) {
   15975           0 :   _error(i2, 8872);
   15976           0 :  }
   15977           0 :  i8 = HEAP32[i2 >> 2] | 0;
   15978           0 :  if ((i9 + 1 | 0) >>> 0 > 1073741823) {
   15979           0 :   _luaM_toobig(i8);
   15980           0 :  }
   15981           0 :  i14 = i9 << 2;
   15982           0 :  i13 = _luaM_realloc_(i8, 0, 0, i14) | 0;
   15983           0 :  HEAP32[i6 + 12 >> 2] = i13;
   15984           0 :  HEAP32[i6 + 48 >> 2] = i9;
   15985           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i13, i14) | 0) != 0) {
   15986           0 :   _error(i2, 8824);
   15987           0 :  }
   15988           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   15989           0 :   _error(i2, 8824);
   15990           0 :  }
   15991           0 :  i8 = HEAP32[i3 >> 2] | 0;
   15992           0 :  if ((i8 | 0) < 0) {
   15993           0 :   _error(i2, 8872);
   15994           0 :  }
   15995           0 :  i9 = HEAP32[i2 >> 2] | 0;
   15996           0 :  if ((i8 + 1 | 0) >>> 0 > 268435455) {
   15997           0 :   _luaM_toobig(i9);
   15998           0 :  }
   15999           0 :  i11 = _luaM_realloc_(i9, 0, 0, i8 << 4) | 0;
   16000           0 :  i9 = i6 + 8 | 0;
   16001           0 :  HEAP32[i9 >> 2] = i11;
   16002           0 :  HEAP32[i6 + 44 >> 2] = i8;
   16003           0 :  i12 = (i8 | 0) > 0;
   16004           0 :  L43 : do {
   16005           0 :   if (i12) {
   16006           0 :    i10 = 0;
   16007           0 :    do {
   16008           0 :     HEAP32[i11 + (i10 << 4) + 8 >> 2] = 0;
   16009           0 :     i10 = i10 + 1 | 0;
   16010           0 :    } while ((i10 | 0) != (i8 | 0));
   16011           0 :    if (i12) {
   16012           0 :     i10 = i2 + 8 | 0;
   16013           0 :     i13 = 0;
   16014           0 :     while (1) {
   16015           0 :      i12 = i11 + (i13 << 4) | 0;
   16016           0 :      if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
   16017           0 :       i9 = 34;
   16018           0 :       break;
   16019           0 :      }
   16020           0 :      i14 = HEAP8[i3] | 0;
   16021           0 :      if ((i14 | 0) == 4) {
   16022           0 :       if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16023           0 :        i9 = 44;
   16024           0 :        break;
   16025           0 :       }
   16026           0 :       i14 = HEAP32[i3 >> 2] | 0;
   16027           0 :       if ((i14 | 0) == 0) {
   16028           0 :        i14 = 0;
   16029           0 :       } else {
   16030           0 :        i14 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i10 >> 2] | 0, i14) | 0;
   16031           0 :        if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i14, HEAP32[i3 >> 2] | 0) | 0) != 0) {
   16032           0 :         i9 = 47;
   16033           0 :         break;
   16034           0 :        }
   16035           0 :        i14 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i14, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
   16036           0 :       }
   16037           0 :       HEAP32[i12 >> 2] = i14;
   16038           0 :       HEAP32[i11 + (i13 << 4) + 8 >> 2] = HEAPU8[i14 + 4 | 0] | 64;
   16039           0 :      } else if ((i14 | 0) == 1) {
   16040           0 :       if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
   16041           0 :        i9 = 38;
   16042           0 :        break;
   16043           0 :       }
   16044           0 :       HEAP32[i12 >> 2] = HEAP8[i3] | 0;
   16045           0 :       HEAP32[i11 + (i13 << 4) + 8 >> 2] = 1;
   16046           0 :      } else if ((i14 | 0) == 3) {
   16047           0 :       if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 8) | 0) != 0) {
   16048           0 :        i9 = 41;
   16049           0 :        break;
   16050           0 :       }
   16051           0 :       HEAPF64[i12 >> 3] = +HEAPF64[i3 >> 3];
   16052           0 :       HEAP32[i11 + (i13 << 4) + 8 >> 2] = 3;
   16053           0 :      } else if ((i14 | 0) == 0) {
   16054           0 :       HEAP32[i11 + (i13 << 4) + 8 >> 2] = 0;
   16055           0 :      }
   16056           0 :      i13 = i13 + 1 | 0;
   16057           0 :      if ((i13 | 0) >= (i8 | 0)) {
   16058           0 :       break L43;
   16059           0 :      }
   16060           0 :      i11 = HEAP32[i9 >> 2] | 0;
   16061           0 :     }
   16062           0 :     if ((i9 | 0) == 34) {
   16063           0 :      _error(i2, 8824);
   16064           0 :     } else if ((i9 | 0) == 38) {
   16065           0 :      _error(i2, 8824);
   16066           0 :     } else if ((i9 | 0) == 41) {
   16067           0 :      _error(i2, 8824);
   16068           0 :     } else if ((i9 | 0) == 44) {
   16069           0 :      _error(i2, 8824);
   16070           0 :     } else if ((i9 | 0) == 47) {
   16071           0 :      _error(i2, 8824);
   16072           0 :     }
   16073           0 :    }
   16074           0 :   }
   16075           0 :  } while (0);
   16076           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16077           0 :   _error(i2, 8824);
   16078           0 :  }
   16079           0 :  i8 = HEAP32[i3 >> 2] | 0;
   16080           0 :  if ((i8 | 0) < 0) {
   16081           0 :   _error(i2, 8872);
   16082           0 :  }
   16083           0 :  i9 = HEAP32[i2 >> 2] | 0;
   16084           0 :  if ((i8 + 1 | 0) >>> 0 > 1073741823) {
   16085           0 :   _luaM_toobig(i9);
   16086           0 :  }
   16087           0 :  i11 = _luaM_realloc_(i9, 0, 0, i8 << 2) | 0;
   16088           0 :  i9 = i6 + 16 | 0;
   16089           0 :  HEAP32[i9 >> 2] = i11;
   16090           0 :  HEAP32[i6 + 56 >> 2] = i8;
   16091           0 :  i10 = (i8 | 0) > 0;
   16092           0 :  if (i10) {
   16093           0 :   i12 = 0;
   16094           0 :   while (1) {
   16095           0 :    HEAP32[i11 + (i12 << 2) >> 2] = 0;
   16096           0 :    i12 = i12 + 1 | 0;
   16097           0 :    if ((i12 | 0) == (i8 | 0)) {
   16098           0 :     break;
   16099           0 :    }
   16100           0 :    i11 = HEAP32[i9 >> 2] | 0;
   16101           0 :   }
   16102           0 :   if (i10) {
   16103           0 :    i10 = 0;
   16104           0 :    do {
   16105           0 :     i14 = _luaF_newproto(HEAP32[i2 >> 2] | 0) | 0;
   16106           0 :     HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] = i14;
   16107           0 :     _LoadFunction(i2, HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] | 0);
   16108           0 :     i10 = i10 + 1 | 0;
   16109           0 :    } while ((i10 | 0) != (i8 | 0));
   16110           0 :   }
   16111           0 :  }
   16112           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16113           0 :   _error(i2, 8824);
   16114           0 :  }
   16115           0 :  i9 = HEAP32[i3 >> 2] | 0;
   16116           0 :  if ((i9 | 0) < 0) {
   16117           0 :   _error(i2, 8872);
   16118           0 :  }
   16119           0 :  i8 = HEAP32[i2 >> 2] | 0;
   16120           0 :  if ((i9 + 1 | 0) >>> 0 > 536870911) {
   16121           0 :   _luaM_toobig(i8);
   16122           0 :  }
   16123           0 :  i10 = _luaM_realloc_(i8, 0, 0, i9 << 3) | 0;
   16124           0 :  i8 = i6 + 28 | 0;
   16125           0 :  HEAP32[i8 >> 2] = i10;
   16126           0 :  HEAP32[i6 + 40 >> 2] = i9;
   16127           0 :  L98 : do {
   16128           0 :   if ((i9 | 0) > 0) {
   16129           0 :    HEAP32[i10 >> 2] = 0;
   16130           0 :    if ((i9 | 0) == 1) {
   16131           0 :     i10 = 0;
   16132           0 :    } else {
   16133           0 :     i10 = 1;
   16134           0 :     while (1) {
   16135           0 :      HEAP32[(HEAP32[i8 >> 2] | 0) + (i10 << 3) >> 2] = 0;
   16136           0 :      i10 = i10 + 1 | 0;
   16137           0 :      if ((i10 | 0) == (i9 | 0)) {
   16138           0 :       i10 = 0;
   16139           0 :       break;
   16140           0 :      }
   16141           0 :     }
   16142           0 :    }
   16143           0 :    while (1) {
   16144           0 :     if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
   16145           0 :      i9 = 73;
   16146           0 :      break;
   16147           0 :     }
   16148           0 :     HEAP8[(HEAP32[i8 >> 2] | 0) + (i10 << 3) + 4 | 0] = HEAP8[i3] | 0;
   16149           0 :     if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
   16150           0 :      i9 = 75;
   16151           0 :      break;
   16152           0 :     }
   16153           0 :     HEAP8[(HEAP32[i8 >> 2] | 0) + (i10 << 3) + 5 | 0] = HEAP8[i3] | 0;
   16154           0 :     i10 = i10 + 1 | 0;
   16155           0 :     if ((i10 | 0) >= (i9 | 0)) {
   16156           0 :      break L98;
   16157           0 :     }
   16158           0 :    }
   16159           0 :    if ((i9 | 0) == 73) {
   16160           0 :     _error(i2, 8824);
   16161           0 :    } else if ((i9 | 0) == 75) {
   16162           0 :     _error(i2, 8824);
   16163           0 :    }
   16164           0 :   }
   16165           0 :  } while (0);
   16166           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16167           0 :   _error(i2, 8824);
   16168           0 :  }
   16169           0 :  i9 = HEAP32[i3 >> 2] | 0;
   16170           0 :  do {
   16171           0 :   if ((i9 | 0) != 0) {
   16172           0 :    i9 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i2 + 8 >> 2] | 0, i9) | 0;
   16173           0 :    if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i9, HEAP32[i3 >> 2] | 0) | 0) == 0) {
   16174           0 :     i7 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i9, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
   16175           0 :     break;
   16176           0 :    } else {
   16177           0 :     _error(i2, 8824);
   16178           0 :    }
   16179           0 :   } else {
   16180           0 :    i7 = 0;
   16181           0 :   }
   16182           0 :  } while (0);
   16183           0 :  HEAP32[i6 + 36 >> 2] = i7;
   16184           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16185           0 :   _error(i2, 8824);
   16186           0 :  }
   16187           0 :  i7 = HEAP32[i3 >> 2] | 0;
   16188           0 :  if ((i7 | 0) < 0) {
   16189           0 :   _error(i2, 8872);
   16190           0 :  }
   16191           0 :  i9 = HEAP32[i2 >> 2] | 0;
   16192           0 :  if ((i7 + 1 | 0) >>> 0 > 1073741823) {
   16193           0 :   _luaM_toobig(i9);
   16194           0 :  }
   16195           0 :  i14 = i7 << 2;
   16196           0 :  i13 = _luaM_realloc_(i9, 0, 0, i14) | 0;
   16197           0 :  HEAP32[i6 + 20 >> 2] = i13;
   16198           0 :  HEAP32[i6 + 52 >> 2] = i7;
   16199           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i13, i14) | 0) != 0) {
   16200           0 :   _error(i2, 8824);
   16201           0 :  }
   16202           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16203           0 :   _error(i2, 8824);
   16204           0 :  }
   16205           0 :  i7 = HEAP32[i3 >> 2] | 0;
   16206           0 :  if ((i7 | 0) < 0) {
   16207           0 :   _error(i2, 8872);
   16208           0 :  }
   16209           0 :  i9 = HEAP32[i2 >> 2] | 0;
   16210           0 :  if ((i7 + 1 | 0) >>> 0 > 357913941) {
   16211           0 :   _luaM_toobig(i9);
   16212           0 :  }
   16213           0 :  i10 = _luaM_realloc_(i9, 0, 0, i7 * 12 | 0) | 0;
   16214           0 :  i9 = i6 + 24 | 0;
   16215           0 :  HEAP32[i9 >> 2] = i10;
   16216           0 :  HEAP32[i6 + 60 >> 2] = i7;
   16217           0 :  L141 : do {
   16218           0 :   if ((i7 | 0) > 0) {
   16219           0 :    HEAP32[i10 >> 2] = 0;
   16220           0 :    if ((i7 | 0) != 1) {
   16221           0 :     i6 = 1;
   16222           0 :     do {
   16223           0 :      HEAP32[(HEAP32[i9 >> 2] | 0) + (i6 * 12 | 0) >> 2] = 0;
   16224           0 :      i6 = i6 + 1 | 0;
   16225           0 :     } while ((i6 | 0) != (i7 | 0));
   16226           0 :    }
   16227           0 :    i6 = i2 + 8 | 0;
   16228           0 :    i10 = 0;
   16229           0 :    while (1) {
   16230           0 :     if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16231           0 :      i9 = 102;
   16232           0 :      break;
   16233           0 :     }
   16234           0 :     i11 = HEAP32[i3 >> 2] | 0;
   16235           0 :     if ((i11 | 0) == 0) {
   16236           0 :      i11 = 0;
   16237           0 :     } else {
   16238           0 :      i11 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i6 >> 2] | 0, i11) | 0;
   16239           0 :      if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i11, HEAP32[i3 >> 2] | 0) | 0) != 0) {
   16240           0 :       i9 = 105;
   16241           0 :       break;
   16242           0 :      }
   16243           0 :      i11 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i11, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
   16244           0 :     }
   16245           0 :     HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) >> 2] = i11;
   16246           0 :     if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16247           0 :      i9 = 108;
   16248           0 :      break;
   16249           0 :     }
   16250           0 :     i11 = HEAP32[i3 >> 2] | 0;
   16251           0 :     if ((i11 | 0) < 0) {
   16252           0 :      i9 = 110;
   16253           0 :      break;
   16254           0 :     }
   16255           0 :     HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) + 4 >> 2] = i11;
   16256           0 :     if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16257           0 :      i9 = 112;
   16258           0 :      break;
   16259           0 :     }
   16260           0 :     i11 = HEAP32[i3 >> 2] | 0;
   16261           0 :     if ((i11 | 0) < 0) {
   16262           0 :      i9 = 114;
   16263           0 :      break;
   16264           0 :     }
   16265           0 :     HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) + 8 >> 2] = i11;
   16266           0 :     i10 = i10 + 1 | 0;
   16267           0 :     if ((i10 | 0) >= (i7 | 0)) {
   16268           0 :      break L141;
   16269           0 :     }
   16270           0 :    }
   16271           0 :    if ((i9 | 0) == 102) {
   16272           0 :     _error(i2, 8824);
   16273           0 :    } else if ((i9 | 0) == 105) {
   16274           0 :     _error(i2, 8824);
   16275           0 :    } else if ((i9 | 0) == 108) {
   16276           0 :     _error(i2, 8824);
   16277           0 :    } else if ((i9 | 0) == 110) {
   16278           0 :     _error(i2, 8872);
   16279           0 :    } else if ((i9 | 0) == 112) {
   16280           0 :     _error(i2, 8824);
   16281           0 :    } else if ((i9 | 0) == 114) {
   16282           0 :     _error(i2, 8872);
   16283           0 :    }
   16284           0 :   }
   16285           0 :  } while (0);
   16286           0 :  if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i5, 4) | 0) != 0) {
   16287           0 :   _error(i2, 8824);
   16288           0 :  }
   16289           0 :  i6 = HEAP32[i5 >> 2] | 0;
   16290           0 :  if ((i6 | 0) < 0) {
   16291           0 :   _error(i2, 8872);
   16292           0 :  }
   16293           0 :  if ((i6 | 0) <= 0) {
   16294           0 :   STACKTOP = i1;
   16295           0 :   return;
   16296           0 :  }
   16297           0 :  i5 = i2 + 8 | 0;
   16298           0 :  i7 = 0;
   16299           0 :  while (1) {
   16300           0 :   if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
   16301           0 :    i9 = 123;
   16302           0 :    break;
   16303           0 :   }
   16304           0 :   i9 = HEAP32[i3 >> 2] | 0;
   16305           0 :   if ((i9 | 0) == 0) {
   16306           0 :    i9 = 0;
   16307           0 :   } else {
   16308           0 :    i9 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i5 >> 2] | 0, i9) | 0;
   16309           0 :    if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i9, HEAP32[i3 >> 2] | 0) | 0) != 0) {
   16310           0 :     i9 = 126;
   16311           0 :     break;
   16312           0 :    }
   16313           0 :    i9 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i9, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
   16314           0 :   }
   16315           0 :   HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 3) >> 2] = i9;
   16316           0 :   i7 = i7 + 1 | 0;
   16317           0 :   if ((i7 | 0) >= (i6 | 0)) {
   16318           0 :    i9 = 129;
   16319           0 :    break;
   16320           0 :   }
   16321           0 :  }
   16322           0 :  if ((i9 | 0) == 123) {
   16323           0 :   _error(i2, 8824);
   16324           0 :  } else if ((i9 | 0) == 126) {
   16325           0 :   _error(i2, 8824);
   16326           0 :  } else if ((i9 | 0) == 129) {
   16327           0 :   STACKTOP = i1;
   16328           0 :   return;
   16329           0 :  }
   16330           1 : }
   16331          88 : function _exp2reg(i4, i1, i7) {
   16332          88 :  i4 = i4 | 0;
   16333          88 :  i1 = i1 | 0;
   16334          88 :  i7 = i7 | 0;
   16335          88 :  var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0;
   16336          88 :  i5 = STACKTOP;
   16337          88 :  _discharge2reg(i4, i1, i7);
   16338          88 :  i6 = i1 + 16 | 0;
   16339          88 :  do {
   16340          88 :   if ((HEAP32[i1 >> 2] | 0) == 10 ? (i10 = HEAP32[i1 + 8 >> 2] | 0, !((i10 | 0) == -1)) : 0) {
   16341          88 :    i22 = HEAP32[i6 >> 2] | 0;
   16342          88 :    if ((i22 | 0) == -1) {
   16343          88 :     HEAP32[i6 >> 2] = i10;
   16344          88 :     break;
   16345          88 :    }
   16346          88 :    i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   16347          88 :    while (1) {
   16348          88 :     i19 = i20 + (i22 << 2) | 0;
   16349          88 :     i21 = HEAP32[i19 >> 2] | 0;
   16350          88 :     i23 = (i21 >>> 14) + -131071 | 0;
   16351          88 :     if ((i23 | 0) == -1) {
   16352          88 :      break;
   16353          88 :     }
   16354          88 :     i23 = i22 + 1 + i23 | 0;
   16355          88 :     if ((i23 | 0) == -1) {
   16356          88 :      break;
   16357          88 :     } else {
   16358          88 :      i22 = i23;
   16359          88 :     }
   16360          88 :    }
   16361          88 :    i10 = i10 + ~i22 | 0;
   16362          88 :    if ((((i10 | 0) > -1 ? i10 : 0 - i10 | 0) | 0) > 131071) {
   16363          88 :     _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
   16364          88 :    } else {
   16365          88 :     HEAP32[i19 >> 2] = (i10 << 14) + 2147467264 | i21 & 16383;
   16366          88 :     break;
   16367          88 :    }
   16368          88 :   }
   16369          88 :  } while (0);
   16370          88 :  i21 = HEAP32[i6 >> 2] | 0;
   16371          88 :  i10 = i1 + 20 | 0;
   16372          88 :  i19 = HEAP32[i10 >> 2] | 0;
   16373          88 :  if ((i21 | 0) == (i19 | 0)) {
   16374          88 :   HEAP32[i6 >> 2] = -1;
   16375          88 :   HEAP32[i10 >> 2] = -1;
   16376          88 :   i25 = i1 + 8 | 0;
   16377          88 :   HEAP32[i25 >> 2] = i7;
   16378          88 :   HEAP32[i1 >> 2] = 6;
   16379          88 :   STACKTOP = i5;
   16380          88 :   return;
   16381          88 :  }
   16382          88 :  L18 : do {
   16383          88 :   if ((i21 | 0) == -1) {
   16384          88 :    i18 = 20;
   16385          88 :   } else {
   16386          88 :    i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   16387          88 :    while (1) {
   16388          88 :     i23 = i20 + (i21 << 2) | 0;
   16389          88 :     if ((i21 | 0) > 0 ? (i18 = HEAP32[i20 + (i21 + -1 << 2) >> 2] | 0, (HEAP8[5584 + (i18 & 63) | 0] | 0) < 0) : 0) {
   16390          88 :      i22 = i18;
   16391          88 :     } else {
   16392          88 :      i22 = HEAP32[i23 >> 2] | 0;
   16393          88 :     }
   16394          88 :     if ((i22 & 63 | 0) != 28) {
   16395          88 :      i18 = 28;
   16396          88 :      break L18;
   16397          88 :     }
   16398          88 :     i22 = ((HEAP32[i23 >> 2] | 0) >>> 14) + -131071 | 0;
   16399          88 :     if ((i22 | 0) == -1) {
   16400          88 :      i18 = 20;
   16401          88 :      break L18;
   16402          88 :     }
   16403          88 :     i21 = i21 + 1 + i22 | 0;
   16404          88 :     if ((i21 | 0) == -1) {
   16405          88 :      i18 = 20;
   16406          88 :      break;
   16407          88 :     }
   16408          88 :    }
   16409          88 :   }
   16410          88 :  } while (0);
   16411          88 :  L29 : do {
   16412          88 :   if ((i18 | 0) == 20) {
   16413          88 :    if ((i19 | 0) == -1) {
   16414          88 :     i15 = -1;
   16415          88 :     i8 = -1;
   16416          88 :    } else {
   16417          88 :     i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   16418          88 :     while (1) {
   16419          88 :      i21 = i20 + (i19 << 2) | 0;
   16420          88 :      if ((i19 | 0) > 0 ? (i17 = HEAP32[i20 + (i19 + -1 << 2) >> 2] | 0, (HEAP8[5584 + (i17 & 63) | 0] | 0) < 0) : 0) {
   16421          88 :       i22 = i17;
   16422          88 :      } else {
   16423          88 :       i22 = HEAP32[i21 >> 2] | 0;
   16424          88 :      }
   16425          88 :      if ((i22 & 63 | 0) != 28) {
   16426          88 :       i18 = 28;
   16427          88 :       break L29;
   16428          88 :      }
   16429          88 :      i21 = ((HEAP32[i21 >> 2] | 0) >>> 14) + -131071 | 0;
   16430          88 :      if ((i21 | 0) == -1) {
   16431          88 :       i15 = -1;
   16432          88 :       i8 = -1;
   16433          88 :       break L29;
   16434          88 :      }
   16435          88 :      i19 = i19 + 1 + i21 | 0;
   16436          88 :      if ((i19 | 0) == -1) {
   16437          88 :       i15 = -1;
   16438          88 :       i8 = -1;
   16439          88 :       break;
   16440          88 :      }
   16441          88 :     }
   16442          88 :    }
   16443          88 :   }
   16444          88 :  } while (0);
   16445          88 :  do {
   16446          88 :   if ((i18 | 0) == 28) {
   16447          88 :    i17 = i4 + 28 | 0;
   16448          88 :    do {
   16449          88 :     if ((HEAP32[i1 >> 2] | 0) != 10) {
   16450          88 :      i21 = HEAP32[i17 >> 2] | 0;
   16451          88 :      HEAP32[i17 >> 2] = -1;
   16452          88 :      i18 = _luaK_code(i4, 2147450903) | 0;
   16453          88 :      if (!((i21 | 0) == -1)) {
   16454          88 :       if (!((i18 | 0) == -1)) {
   16455          88 :        i23 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   16456          88 :        i22 = i18;
   16457          88 :        while (1) {
   16458          88 :         i20 = i23 + (i22 << 2) | 0;
   16459          88 :         i19 = HEAP32[i20 >> 2] | 0;
   16460          88 :         i24 = (i19 >>> 14) + -131071 | 0;
   16461          88 :         if ((i24 | 0) == -1) {
   16462          88 :          break;
   16463          88 :         }
   16464          88 :         i24 = i22 + 1 + i24 | 0;
   16465          88 :         if ((i24 | 0) == -1) {
   16466          88 :          break;
   16467          88 :         } else {
   16468          88 :          i22 = i24;
   16469          88 :         }
   16470          88 :        }
   16471          88 :        i21 = i21 + ~i22 | 0;
   16472          88 :        if ((((i21 | 0) > -1 ? i21 : 0 - i21 | 0) | 0) > 131071) {
   16473          88 :         _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
   16474          88 :        } else {
   16475          88 :         HEAP32[i20 >> 2] = (i21 << 14) + 2147467264 | i19 & 16383;
   16476          88 :         i16 = i18;
   16477          88 :         break;
   16478          88 :        }
   16479          88 :       } else {
   16480          88 :        i16 = i21;
   16481          88 :       }
   16482          88 :      } else {
   16483          88 :       i16 = i18;
   16484          88 :      }
   16485          88 :     } else {
   16486          88 :      i16 = -1;
   16487          88 :     }
   16488          88 :    } while (0);
   16489          88 :    i24 = i4 + 20 | 0;
   16490          88 :    i25 = i4 + 24 | 0;
   16491          88 :    HEAP32[i25 >> 2] = HEAP32[i24 >> 2];
   16492          88 :    i19 = i7 << 6;
   16493          88 :    i18 = _luaK_code(i4, i19 | 16387) | 0;
   16494          88 :    HEAP32[i25 >> 2] = HEAP32[i24 >> 2];
   16495          88 :    i19 = _luaK_code(i4, i19 | 8388611) | 0;
   16496          88 :    HEAP32[i25 >> 2] = HEAP32[i24 >> 2];
   16497          88 :    if (!((i16 | 0) == -1)) {
   16498          88 :     i22 = HEAP32[i17 >> 2] | 0;
   16499          88 :     if ((i22 | 0) == -1) {
   16500          88 :      HEAP32[i17 >> 2] = i16;
   16501          88 :      i15 = i18;
   16502          88 :      i8 = i19;
   16503          88 :      break;
   16504          88 :     }
   16505          88 :     i17 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   16506          88 :     while (1) {
   16507          88 :      i21 = i17 + (i22 << 2) | 0;
   16508          88 :      i20 = HEAP32[i21 >> 2] | 0;
   16509          88 :      i23 = (i20 >>> 14) + -131071 | 0;
   16510          88 :      if ((i23 | 0) == -1) {
   16511          88 :       break;
   16512          88 :      }
   16513          88 :      i23 = i22 + 1 + i23 | 0;
   16514          88 :      if ((i23 | 0) == -1) {
   16515          88 :       break;
   16516          88 :      } else {
   16517          88 :       i22 = i23;
   16518          88 :      }
   16519          88 :     }
   16520          88 :     i16 = i16 + ~i22 | 0;
   16521          88 :     if ((((i16 | 0) > -1 ? i16 : 0 - i16 | 0) | 0) > 131071) {
   16522          88 :      _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
   16523          88 :     } else {
   16524          88 :      HEAP32[i21 >> 2] = (i16 << 14) + 2147467264 | i20 & 16383;
   16525          88 :      i15 = i18;
   16526          88 :      i8 = i19;
   16527          88 :      break;
   16528          88 :     }
   16529          88 :    } else {
   16530          88 :     i15 = i18;
   16531          88 :     i8 = i19;
   16532          88 :    }
   16533          88 :   }
   16534          88 :  } while (0);
   16535          88 :  i16 = HEAP32[i4 + 20 >> 2] | 0;
   16536          88 :  HEAP32[i4 + 24 >> 2] = i16;
   16537          88 :  i22 = HEAP32[i10 >> 2] | 0;
   16538          88 :  L67 : do {
   16539          88 :   if (!((i22 | 0) == -1)) {
   16540          88 :    i19 = (i7 | 0) == 255;
   16541          88 :    i17 = i7 << 6 & 16320;
   16542          88 :    i18 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   16543          88 :    while (1) {
   16544          88 :     i20 = i18 + (i22 << 2) | 0;
   16545          88 :     i23 = HEAP32[i20 >> 2] | 0;
   16546          88 :     i21 = (i23 >>> 14) + -131071 | 0;
   16547          88 :     if ((i21 | 0) == -1) {
   16548          88 :      i21 = -1;
   16549          88 :     } else {
   16550          88 :      i21 = i22 + 1 + i21 | 0;
   16551          88 :     }
   16552          88 :     if ((i22 | 0) > 0 ? (i14 = i18 + (i22 + -1 << 2) | 0, i13 = HEAP32[i14 >> 2] | 0, (HEAP8[5584 + (i13 & 63) | 0] | 0) < 0) : 0) {
   16553          88 :      i24 = i14;
   16554          88 :      i25 = i13;
   16555          88 :     } else {
   16556          88 :      i24 = i20;
   16557          88 :      i25 = i23;
   16558          88 :     }
   16559          88 :     if ((i25 & 63 | 0) == 28) {
   16560          88 :      i23 = i25 >>> 23;
   16561          88 :      if (i19 | (i23 | 0) == (i7 | 0)) {
   16562          88 :       i23 = i25 & 8372224 | i23 << 6 | 27;
   16563          88 :      } else {
   16564          88 :       i23 = i25 & -16321 | i17;
   16565          88 :      }
   16566          88 :      HEAP32[i24 >> 2] = i23;
   16567          88 :      i22 = i16 + ~i22 | 0;
   16568          88 :      if ((((i22 | 0) > -1 ? i22 : 0 - i22 | 0) | 0) > 131071) {
   16569          88 :       i18 = 58;
   16570          88 :       break;
   16571          88 :      }
   16572          88 :      i22 = HEAP32[i20 >> 2] & 16383 | (i22 << 14) + 2147467264;
   16573          88 :     } else {
   16574          88 :      i22 = i15 + ~i22 | 0;
   16575          88 :      if ((((i22 | 0) > -1 ? i22 : 0 - i22 | 0) | 0) > 131071) {
   16576          88 :       i18 = 61;
   16577          88 :       break;
   16578          88 :      }
   16579          88 :      i22 = i23 & 16383 | (i22 << 14) + 2147467264;
   16580          88 :     }
   16581          88 :     HEAP32[i20 >> 2] = i22;
   16582          88 :     if ((i21 | 0) == -1) {
   16583          88 :      break L67;
   16584          88 :     } else {
   16585          88 :      i22 = i21;
   16586          88 :     }
   16587          88 :    }
   16588          88 :    if ((i18 | 0) == 58) {
   16589          88 :     _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
   16590          88 :    } else if ((i18 | 0) == 61) {
   16591          88 :     _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
   16592          88 :    }
   16593          88 :   }
   16594          88 :  } while (0);
   16595          88 :  i20 = HEAP32[i6 >> 2] | 0;
   16596          88 :  if ((i20 | 0) == -1) {
   16597          88 :   HEAP32[i6 >> 2] = -1;
   16598          88 :   HEAP32[i10 >> 2] = -1;
   16599          88 :   i25 = i1 + 8 | 0;
   16600          88 :   HEAP32[i25 >> 2] = i7;
   16601          88 :   HEAP32[i1 >> 2] = 6;
   16602          88 :   STACKTOP = i5;
   16603          88 :   return;
   16604          88 :  }
   16605          88 :  i13 = i7 << 6;
   16606          88 :  i15 = i13 & 16320;
   16607          88 :  i14 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   16608          88 :  if ((i7 | 0) == 255) {
   16609          88 :   while (1) {
   16610          88 :    i17 = i14 + (i20 << 2) | 0;
   16611          88 :    i19 = HEAP32[i17 >> 2] | 0;
   16612          88 :    i18 = (i19 >>> 14) + -131071 | 0;
   16613          88 :    if ((i18 | 0) == -1) {
   16614          88 :     i18 = -1;
   16615          88 :    } else {
   16616          88 :     i18 = i20 + 1 + i18 | 0;
   16617          88 :    }
   16618          88 :    if ((i20 | 0) > 0 ? (i12 = i14 + (i20 + -1 << 2) | 0, i11 = HEAP32[i12 >> 2] | 0, (HEAP8[5584 + (i11 & 63) | 0] | 0) < 0) : 0) {
   16619          88 :     i22 = i12;
   16620          88 :     i21 = i11;
   16621          88 :    } else {
   16622          88 :     i22 = i17;
   16623          88 :     i21 = i19;
   16624          88 :    }
   16625          88 :    if ((i21 & 63 | 0) == 28) {
   16626          88 :     HEAP32[i22 >> 2] = i21 & 8372224 | i21 >>> 23 << 6 | 27;
   16627          88 :     i19 = i16 + ~i20 | 0;
   16628          88 :     if ((((i19 | 0) > -1 ? i19 : 0 - i19 | 0) | 0) > 131071) {
   16629          88 :      i18 = 87;
   16630          88 :      break;
   16631          88 :     }
   16632          88 :     i19 = HEAP32[i17 >> 2] & 16383 | (i19 << 14) + 2147467264;
   16633          88 :    } else {
   16634          88 :     i20 = i8 + ~i20 | 0;
   16635          88 :     if ((((i20 | 0) > -1 ? i20 : 0 - i20 | 0) | 0) > 131071) {
   16636          88 :      i18 = 90;
   16637          88 :      break;
   16638          88 :     }
   16639          88 :     i19 = i19 & 16383 | (i20 << 14) + 2147467264;
   16640          88 :    }
   16641          88 :    HEAP32[i17 >> 2] = i19;
   16642          88 :    if ((i18 | 0) == -1) {
   16643          88 :     i18 = 93;
   16644          88 :     break;
   16645          88 :    } else {
   16646          88 :     i20 = i18;
   16647          88 :    }
   16648          88 :   }
   16649          88 :   if ((i18 | 0) == 87) {
   16650          88 :    i25 = i4 + 12 | 0;
   16651          88 :    i25 = HEAP32[i25 >> 2] | 0;
   16652          88 :    _luaX_syntaxerror(i25, 10624);
   16653          88 :   } else if ((i18 | 0) == 90) {
   16654          88 :    i25 = i4 + 12 | 0;
   16655          88 :    i25 = HEAP32[i25 >> 2] | 0;
   16656          88 :    _luaX_syntaxerror(i25, 10624);
   16657          88 :   } else if ((i18 | 0) == 93) {
   16658          88 :    HEAP32[i6 >> 2] = -1;
   16659          88 :    HEAP32[i10 >> 2] = -1;
   16660          88 :    i25 = i1 + 8 | 0;
   16661          88 :    HEAP32[i25 >> 2] = i7;
   16662          88 :    HEAP32[i1 >> 2] = 6;
   16663          88 :    STACKTOP = i5;
   16664          88 :    return;
   16665          88 :   }
   16666          88 :  } else {
   16667          88 :   i9 = i20;
   16668          88 :  }
   16669          88 :  while (1) {
   16670          88 :   i11 = i14 + (i9 << 2) | 0;
   16671          88 :   i17 = HEAP32[i11 >> 2] | 0;
   16672          88 :   i12 = (i17 >>> 14) + -131071 | 0;
   16673          88 :   if ((i12 | 0) == -1) {
   16674          88 :    i12 = -1;
   16675          88 :   } else {
   16676          88 :    i12 = i9 + 1 + i12 | 0;
   16677          88 :   }
   16678          88 :   if ((i9 | 0) > 0 ? (i3 = i14 + (i9 + -1 << 2) | 0, i2 = HEAP32[i3 >> 2] | 0, (HEAP8[5584 + (i2 & 63) | 0] | 0) < 0) : 0) {
   16679          88 :    i18 = i3;
   16680          88 :    i19 = i2;
   16681          88 :   } else {
   16682          88 :    i18 = i11;
   16683          88 :    i19 = i17;
   16684          88 :   }
   16685          88 :   if ((i19 & 63 | 0) == 28) {
   16686          88 :    if ((i19 >>> 23 | 0) == (i7 | 0)) {
   16687          88 :     i17 = i19 & 8372224 | i13 | 27;
   16688          88 :    } else {
   16689          88 :     i17 = i19 & -16321 | i15;
   16690          88 :    }
   16691          88 :    HEAP32[i18 >> 2] = i17;
   16692          88 :    i9 = i16 + ~i9 | 0;
   16693          88 :    if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) {
   16694          88 :     i18 = 87;
   16695          88 :     break;
   16696          88 :    }
   16697          88 :    i9 = HEAP32[i11 >> 2] & 16383 | (i9 << 14) + 2147467264;
   16698          88 :   } else {
   16699          88 :    i9 = i8 + ~i9 | 0;
   16700          88 :    if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) {
   16701          88 :     i18 = 90;
   16702          88 :     break;
   16703          88 :    }
   16704          88 :    i9 = i17 & 16383 | (i9 << 14) + 2147467264;
   16705          88 :   }
   16706          88 :   HEAP32[i11 >> 2] = i9;
   16707          88 :   if ((i12 | 0) == -1) {
   16708          88 :    i18 = 93;
   16709          88 :    break;
   16710          88 :   } else {
   16711          88 :    i9 = i12;
   16712          88 :   }
   16713          88 :  }
   16714          88 :  if ((i18 | 0) == 87) {
   16715          88 :   i25 = i4 + 12 | 0;
   16716          88 :   i25 = HEAP32[i25 >> 2] | 0;
   16717          88 :   _luaX_syntaxerror(i25, 10624);
   16718          88 :  } else if ((i18 | 0) == 90) {
   16719          88 :   i25 = i4 + 12 | 0;
   16720          88 :   i25 = HEAP32[i25 >> 2] | 0;
   16721          88 :   _luaX_syntaxerror(i25, 10624);
   16722          88 :  } else if ((i18 | 0) == 93) {
   16723          88 :   HEAP32[i6 >> 2] = -1;
   16724          88 :   HEAP32[i10 >> 2] = -1;
   16725          88 :   i25 = i1 + 8 | 0;
   16726          88 :   HEAP32[i25 >> 2] = i7;
   16727          88 :   HEAP32[i1 >> 2] = 6;
   16728          88 :   STACKTOP = i5;
   16729          88 :   return;
   16730          88 :  }
   16731          88 : }
   16732       47986 : function _propagatemark(i2) {
   16733       47986 :  i2 = i2 | 0;
   16734       47986 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
   16735       47986 :  i1 = STACKTOP;
   16736       47986 :  i15 = i2 + 84 | 0;
   16737       47986 :  i3 = HEAP32[i15 >> 2] | 0;
   16738       47986 :  i10 = i3 + 5 | 0;
   16739       47986 :  HEAP8[i10] = HEAPU8[i10] | 4;
   16740       47986 :  switch (HEAPU8[i3 + 4 | 0] | 0) {
   16741       47986 :  case 5:
   16742       47986 :   {
   16743       47986 :    i9 = i3 + 24 | 0;
   16744       47986 :    HEAP32[i15 >> 2] = HEAP32[i9 >> 2];
   16745       47986 :    i15 = i3 + 8 | 0;
   16746       47986 :    i14 = HEAP32[i15 >> 2] | 0;
   16747       47986 :    do {
   16748       47986 :     if ((i14 | 0) != 0) {
   16749       47986 :      if ((HEAP8[i14 + 6 | 0] & 8) == 0) {
   16750       47986 :       i11 = _luaT_gettm(i14, 3, HEAP32[i2 + 196 >> 2] | 0) | 0;
   16751       47986 :       i14 = HEAP32[i15 >> 2] | 0;
   16752       47986 :       if ((i14 | 0) != 0) {
   16753       47986 :        i6 = 5;
   16754       47986 :       }
   16755       47986 :      } else {
   16756       47986 :       i11 = 0;
   16757       47986 :       i6 = 5;
   16758       47986 :      }
   16759       47986 :      if ((i6 | 0) == 5) {
   16760       47986 :       if (!((HEAP8[i14 + 5 | 0] & 3) == 0)) {
   16761       47986 :        _reallymarkobject(i2, i14);
   16762       47986 :       }
   16763       47986 :      }
   16764       47986 :      if (((i11 | 0) != 0 ? (HEAP32[i11 + 8 >> 2] & 15 | 0) == 4 : 0) ? (i13 = (HEAP32[i11 >> 2] | 0) + 16 | 0, i12 = _strchr(i13, 107) | 0, i12 = (i12 | 0) != 0, i13 = (_strchr(i13, 118) | 0) == 0, !(i13 & (i12 ^ 1))) : 0) {
   16765       47986 :       HEAP8[i10] = HEAP8[i10] & 251;
   16766       47986 :       if (i12) {
   16767       47986 :        if (i13) {
   16768       47986 :         _traverseephemeron(i2, i3) | 0;
   16769       47986 :         break;
   16770       47986 :        } else {
   16771       47986 :         i15 = i2 + 100 | 0;
   16772       47986 :         HEAP32[i9 >> 2] = HEAP32[i15 >> 2];
   16773       47986 :         HEAP32[i15 >> 2] = i3;
   16774       47986 :         break;
   16775       47986 :        }
   16776       47986 :       }
   16777       47986 :       i15 = 1 << HEAPU8[i3 + 7 | 0];
   16778       47986 :       i5 = HEAP32[i3 + 16 >> 2] | 0;
   16779       47986 :       i4 = i5 + (i15 << 5) | 0;
   16780       47986 :       i8 = (HEAP32[i3 + 28 >> 2] | 0) > 0 | 0;
   16781       47986 :       if ((i15 | 0) > 0) {
   16782       47986 :        do {
   16783       47986 :         i12 = i5 + 8 | 0;
   16784       47986 :         i10 = i5 + 24 | 0;
   16785       47986 :         i11 = (HEAP32[i10 >> 2] & 64 | 0) == 0;
   16786       47986 :         do {
   16787       47986 :          if ((HEAP32[i12 >> 2] | 0) == 0) {
   16788       47986 :           if (!i11 ? !((HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
   16789       47986 :            HEAP32[i10 >> 2] = 11;
   16790       47986 :           }
   16791       47986 :          } else {
   16792       47986 :           if (!i11 ? (i7 = HEAP32[i5 + 16 >> 2] | 0, !((HEAP8[i7 + 5 | 0] & 3) == 0)) : 0) {
   16793       47986 :            _reallymarkobject(i2, i7);
   16794       47986 :           }
   16795       47986 :           if ((i8 | 0) == 0) {
   16796       47986 :            i10 = HEAP32[i12 >> 2] | 0;
   16797       47986 :            if ((i10 & 64 | 0) != 0) {
   16798       47986 :             i8 = HEAP32[i5 >> 2] | 0;
   16799       47986 :             if ((i10 & 15 | 0) != 4) {
   16800       47986 :              i8 = (HEAP8[i8 + 5 | 0] & 3) != 0 | 0;
   16801       47986 :              break;
   16802       47986 :             }
   16803       47986 :             if ((i8 | 0) != 0 ? !((HEAP8[i8 + 5 | 0] & 3) == 0) : 0) {
   16804       47986 :              _reallymarkobject(i2, i8);
   16805       47986 :              i8 = 0;
   16806       47986 :             } else {
   16807       47986 :              i8 = 0;
   16808       47986 :             }
   16809       47986 :            } else {
   16810       47986 :             i8 = 0;
   16811       47986 :            }
   16812       47986 :           }
   16813       47986 :          }
   16814       47986 :         } while (0);
   16815       47986 :         i5 = i5 + 32 | 0;
   16816       47986 :        } while (i5 >>> 0 < i4 >>> 0);
   16817       47986 :       }
   16818       47986 :       if ((i8 | 0) == 0) {
   16819       47986 :        i15 = i2 + 88 | 0;
   16820       47986 :        HEAP32[i9 >> 2] = HEAP32[i15 >> 2];
   16821       47986 :        HEAP32[i15 >> 2] = i3;
   16822       47986 :        break;
   16823       47986 :       } else {
   16824       47986 :        i15 = i2 + 92 | 0;
   16825       47986 :        HEAP32[i9 >> 2] = HEAP32[i15 >> 2];
   16826       47986 :        HEAP32[i15 >> 2] = i3;
   16827       47986 :        break;
   16828       47986 :       }
   16829       47986 :      } else {
   16830       47986 :       i6 = 33;
   16831       47986 :      }
   16832       47986 :     } else {
   16833       47986 :      i6 = 33;
   16834       47986 :     }
   16835       47986 :    } while (0);
   16836       47986 :    if ((i6 | 0) == 33) {
   16837       47986 :     i7 = i3 + 16 | 0;
   16838       47986 :     i10 = HEAP32[i7 >> 2] | 0;
   16839       47986 :     i6 = i10 + (1 << HEAPU8[i3 + 7 | 0] << 5) | 0;
   16840       47986 :     i9 = i3 + 28 | 0;
   16841       47986 :     i13 = HEAP32[i9 >> 2] | 0;
   16842       47986 :     if ((i13 | 0) > 0) {
   16843       47986 :      i10 = i3 + 12 | 0;
   16844       47986 :      i11 = 0;
   16845       47986 :      do {
   16846       47986 :       i12 = HEAP32[i10 >> 2] | 0;
   16847       47986 :       if ((HEAP32[i12 + (i11 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i8 = HEAP32[i12 + (i11 << 4) >> 2] | 0, !((HEAP8[i8 + 5 | 0] & 3) == 0)) : 0) {
   16848       47986 :        _reallymarkobject(i2, i8);
   16849       47986 :        i13 = HEAP32[i9 >> 2] | 0;
   16850       47986 :       }
   16851       47986 :       i11 = i11 + 1 | 0;
   16852       47986 :      } while ((i11 | 0) < (i13 | 0));
   16853       47986 :      i7 = HEAP32[i7 >> 2] | 0;
   16854       47986 :     } else {
   16855       47986 :      i7 = i10;
   16856       47986 :     }
   16857       47986 :     if (i7 >>> 0 < i6 >>> 0) {
   16858       47986 :      do {
   16859       47986 :       i10 = i7 + 8 | 0;
   16860       47986 :       i11 = HEAP32[i10 >> 2] | 0;
   16861       47986 :       i9 = i7 + 24 | 0;
   16862       47986 :       i8 = (HEAP32[i9 >> 2] & 64 | 0) == 0;
   16863       47986 :       if ((i11 | 0) == 0) {
   16864       47986 :        if (!i8 ? !((HEAP8[(HEAP32[i7 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
   16865       47986 :         HEAP32[i9 >> 2] = 11;
   16866       47986 :        }
   16867       47986 :       } else {
   16868       47986 :        if (!i8 ? (i5 = HEAP32[i7 + 16 >> 2] | 0, !((HEAP8[i5 + 5 | 0] & 3) == 0)) : 0) {
   16869       47986 :         _reallymarkobject(i2, i5);
   16870       47986 :         i11 = HEAP32[i10 >> 2] | 0;
   16871       47986 :        }
   16872       47986 :        if ((i11 & 64 | 0) != 0 ? (i4 = HEAP32[i7 >> 2] | 0, !((HEAP8[i4 + 5 | 0] & 3) == 0)) : 0) {
   16873       47986 :         _reallymarkobject(i2, i4);
   16874       47986 :        }
   16875       47986 :       }
   16876       47986 :       i7 = i7 + 32 | 0;
   16877       47986 :      } while (i7 >>> 0 < i6 >>> 0);
   16878       47986 :     }
   16879       47986 :    }
   16880       47986 :    i3 = (HEAP32[i3 + 28 >> 2] << 4) + 32 + (32 << HEAPU8[i3 + 7 | 0]) | 0;
   16881       47986 :    break;
   16882       47986 :   }
   16883       47986 :  case 8:
   16884       47986 :   {
   16885       47986 :    i7 = i3 + 60 | 0;
   16886       47986 :    HEAP32[i15 >> 2] = HEAP32[i7 >> 2];
   16887       47986 :    i4 = i2 + 88 | 0;
   16888       47986 :    HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
   16889       47986 :    HEAP32[i4 >> 2] = i3;
   16890       47986 :    HEAP8[i10] = HEAP8[i10] & 251;
   16891       47986 :    i4 = i3 + 28 | 0;
   16892       47986 :    i7 = HEAP32[i4 >> 2] | 0;
   16893       47986 :    if ((i7 | 0) == 0) {
   16894       47986 :     i3 = 1;
   16895       47986 :    } else {
   16896       47986 :     i5 = i3 + 8 | 0;
   16897       47986 :     i6 = HEAP32[i5 >> 2] | 0;
   16898       47986 :     if (i7 >>> 0 < i6 >>> 0) {
   16899       47986 :      do {
   16900       47986 :       if ((HEAP32[i7 + 8 >> 2] & 64 | 0) != 0 ? (i11 = HEAP32[i7 >> 2] | 0, !((HEAP8[i11 + 5 | 0] & 3) == 0)) : 0) {
   16901       47986 :        _reallymarkobject(i2, i11);
   16902       47986 :        i6 = HEAP32[i5 >> 2] | 0;
   16903       47986 :       }
   16904       47986 :       i7 = i7 + 16 | 0;
   16905       47986 :      } while (i7 >>> 0 < i6 >>> 0);
   16906       47986 :     }
   16907       47986 :     if ((HEAP8[i2 + 61 | 0] | 0) == 1) {
   16908       47986 :      i3 = i3 + 32 | 0;
   16909       47986 :      i4 = (HEAP32[i4 >> 2] | 0) + (HEAP32[i3 >> 2] << 4) | 0;
   16910       47986 :      if (i7 >>> 0 < i4 >>> 0) {
   16911       47986 :       do {
   16912       47986 :        HEAP32[i7 + 8 >> 2] = 0;
   16913       47986 :        i7 = i7 + 16 | 0;
   16914       47986 :       } while (i7 >>> 0 < i4 >>> 0);
   16915       47986 :      }
   16916       47986 :     } else {
   16917       47986 :      i3 = i3 + 32 | 0;
   16918       47986 :     }
   16919       47986 :     i3 = (HEAP32[i3 >> 2] << 4) + 112 | 0;
   16920       47986 :    }
   16921       47986 :    break;
   16922       47986 :   }
   16923       47986 :  case 9:
   16924       47986 :   {
   16925       47986 :    HEAP32[i15 >> 2] = HEAP32[i3 + 72 >> 2];
   16926       47986 :    i5 = i3 + 32 | 0;
   16927       47986 :    i4 = HEAP32[i5 >> 2] | 0;
   16928       47986 :    if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) {
   16929       47986 :     HEAP32[i5 >> 2] = 0;
   16930       47986 :    }
   16931       47986 :    i4 = HEAP32[i3 + 36 >> 2] | 0;
   16932       47986 :    if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) {
   16933       47986 :     _reallymarkobject(i2, i4);
   16934       47986 :    }
   16935       47986 :    i4 = i3 + 44 | 0;
   16936       47986 :    i8 = HEAP32[i4 >> 2] | 0;
   16937       47986 :    if ((i8 | 0) > 0) {
   16938       47986 :     i5 = i3 + 8 | 0;
   16939       47986 :     i6 = 0;
   16940       47986 :     do {
   16941       47986 :      i7 = HEAP32[i5 >> 2] | 0;
   16942       47986 :      if ((HEAP32[i7 + (i6 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i9 = HEAP32[i7 + (i6 << 4) >> 2] | 0, !((HEAP8[i9 + 5 | 0] & 3) == 0)) : 0) {
   16943       47986 :       _reallymarkobject(i2, i9);
   16944       47986 :       i8 = HEAP32[i4 >> 2] | 0;
   16945       47986 :      }
   16946       47986 :      i6 = i6 + 1 | 0;
   16947       47986 :     } while ((i6 | 0) < (i8 | 0));
   16948       47986 :    }
   16949       47986 :    i5 = i3 + 40 | 0;
   16950       47986 :    i8 = HEAP32[i5 >> 2] | 0;
   16951       47986 :    if ((i8 | 0) > 0) {
   16952       47986 :     i6 = i3 + 28 | 0;
   16953       47986 :     i7 = 0;
   16954       47986 :     do {
   16955       47986 :      i9 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i7 << 3) >> 2] | 0;
   16956       47986 :      if ((i9 | 0) != 0 ? !((HEAP8[i9 + 5 | 0] & 3) == 0) : 0) {
   16957       47986 :       _reallymarkobject(i2, i9);
   16958       47986 :       i8 = HEAP32[i5 >> 2] | 0;
   16959       47986 :      }
   16960       47986 :      i7 = i7 + 1 | 0;
   16961       47986 :     } while ((i7 | 0) < (i8 | 0));
   16962       47986 :    }
   16963       47986 :    i6 = i3 + 56 | 0;
   16964       47986 :    i8 = HEAP32[i6 >> 2] | 0;
   16965       47986 :    if ((i8 | 0) > 0) {
   16966       47986 :     i7 = i3 + 16 | 0;
   16967       47986 :     i9 = 0;
   16968       47986 :     do {
   16969       47986 :      i10 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i9 << 2) >> 2] | 0;
   16970       47986 :      if ((i10 | 0) != 0 ? !((HEAP8[i10 + 5 | 0] & 3) == 0) : 0) {
   16971       47986 :       _reallymarkobject(i2, i10);
   16972       47986 :       i8 = HEAP32[i6 >> 2] | 0;
   16973       47986 :      }
   16974       47986 :      i9 = i9 + 1 | 0;
   16975       47986 :     } while ((i9 | 0) < (i8 | 0));
   16976       47986 :    }
   16977       47986 :    i7 = i3 + 60 | 0;
   16978       47986 :    i11 = HEAP32[i7 >> 2] | 0;
   16979       47986 :    if ((i11 | 0) > 0) {
   16980       47986 :     i8 = i3 + 24 | 0;
   16981       47986 :     i9 = 0;
   16982       47986 :     do {
   16983       47986 :      i10 = HEAP32[(HEAP32[i8 >> 2] | 0) + (i9 * 12 | 0) >> 2] | 0;
   16984       47986 :      if ((i10 | 0) != 0 ? !((HEAP8[i10 + 5 | 0] & 3) == 0) : 0) {
   16985       47986 :       _reallymarkobject(i2, i10);
   16986       47986 :       i11 = HEAP32[i7 >> 2] | 0;
   16987       47986 :      }
   16988       47986 :      i9 = i9 + 1 | 0;
   16989       47986 :     } while ((i9 | 0) < (i11 | 0));
   16990       47986 :     i8 = HEAP32[i6 >> 2] | 0;
   16991       47986 :    }
   16992       47986 :    i3 = (i11 * 12 | 0) + 80 + (HEAP32[i4 >> 2] << 4) + (HEAP32[i5 >> 2] << 3) + ((HEAP32[i3 + 48 >> 2] | 0) + i8 + (HEAP32[i3 + 52 >> 2] | 0) << 2) | 0;
   16993       47986 :    break;
   16994       47986 :   }
   16995       47986 :  case 38:
   16996       47986 :   {
   16997       47986 :    HEAP32[i15 >> 2] = HEAP32[i3 + 8 >> 2];
   16998       47986 :    i4 = i3 + 6 | 0;
   16999       47986 :    i5 = HEAP8[i4] | 0;
   17000       47986 :    if (i5 << 24 >> 24 == 0) {
   17001       47986 :     i7 = i5 & 255;
   17002       47986 :    } else {
   17003       47986 :     i6 = 0;
   17004       47986 :     do {
   17005       47986 :      if ((HEAP32[i3 + (i6 << 4) + 24 >> 2] & 64 | 0) != 0 ? (i14 = HEAP32[i3 + (i6 << 4) + 16 >> 2] | 0, !((HEAP8[i14 + 5 | 0] & 3) == 0)) : 0) {
   17006       47986 :       _reallymarkobject(i2, i14);
   17007       47986 :       i5 = HEAP8[i4] | 0;
   17008       47986 :      }
   17009       47986 :      i6 = i6 + 1 | 0;
   17010       47986 :      i7 = i5 & 255;
   17011       47986 :     } while ((i6 | 0) < (i7 | 0));
   17012       47986 :    }
   17013       47986 :    i3 = (i7 << 4) + 16 | 0;
   17014       47986 :    break;
   17015       47986 :   }
   17016       47986 :  case 6:
   17017       47986 :   {
   17018       47986 :    HEAP32[i15 >> 2] = HEAP32[i3 + 8 >> 2];
   17019       47986 :    i4 = HEAP32[i3 + 12 >> 2] | 0;
   17020       47986 :    if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) {
   17021       47986 :     _reallymarkobject(i2, i4);
   17022       47986 :    }
   17023       47986 :    i4 = i3 + 6 | 0;
   17024       47986 :    i6 = HEAP8[i4] | 0;
   17025       47986 :    if (i6 << 24 >> 24 == 0) {
   17026       47986 :     i7 = i6 & 255;
   17027       47986 :    } else {
   17028       47986 :     i5 = 0;
   17029       47986 :     do {
   17030       47986 :      i7 = HEAP32[i3 + (i5 << 2) + 16 >> 2] | 0;
   17031       47986 :      if ((i7 | 0) != 0 ? !((HEAP8[i7 + 5 | 0] & 3) == 0) : 0) {
   17032       47986 :       _reallymarkobject(i2, i7);
   17033       47986 :       i6 = HEAP8[i4] | 0;
   17034       47986 :      }
   17035       47986 :      i5 = i5 + 1 | 0;
   17036       47986 :      i7 = i6 & 255;
   17037       47986 :     } while ((i5 | 0) < (i7 | 0));
   17038       47986 :    }
   17039       47986 :    i3 = (i7 << 2) + 16 | 0;
   17040       47986 :    break;
   17041       47986 :   }
   17042       47986 :  default:
   17043       47986 :   {
   17044       47986 :    STACKTOP = i1;
   17045       47986 :    return;
   17046       47986 :   }
   17047       47986 :  }
   17048       47986 :  i15 = i2 + 16 | 0;
   17049       47986 :  HEAP32[i15 >> 2] = (HEAP32[i15 >> 2] | 0) + i3;
   17050       47986 :  STACKTOP = i1;
   17051       47986 :  return;
   17052       47986 : }
   17053           1 : function _strstr(i8, i4) {
   17054           0 :  i8 = i8 | 0;
   17055           0 :  i4 = i4 | 0;
   17056           0 :  var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
   17057           0 :  i1 = STACKTOP;
   17058           0 :  STACKTOP = STACKTOP + 1056 | 0;
   17059           0 :  i6 = i1 + 1024 | 0;
   17060           0 :  i2 = i1;
   17061           0 :  i10 = HEAP8[i4] | 0;
   17062           0 :  if (i10 << 24 >> 24 == 0) {
   17063           0 :   i20 = i8;
   17064           0 :   STACKTOP = i1;
   17065           0 :   return i20 | 0;
   17066           0 :  }
   17067           0 :  i8 = _strchr(i8, i10 << 24 >> 24) | 0;
   17068           0 :  if ((i8 | 0) == 0) {
   17069           0 :   i20 = 0;
   17070           0 :   STACKTOP = i1;
   17071           0 :   return i20 | 0;
   17072           0 :  }
   17073           0 :  i13 = HEAP8[i4 + 1 | 0] | 0;
   17074           0 :  if (i13 << 24 >> 24 == 0) {
   17075           0 :   i20 = i8;
   17076           0 :   STACKTOP = i1;
   17077           0 :   return i20 | 0;
   17078           0 :  }
   17079           0 :  i11 = i8 + 1 | 0;
   17080           0 :  i9 = HEAP8[i11] | 0;
   17081           0 :  if (i9 << 24 >> 24 == 0) {
   17082           0 :   i20 = 0;
   17083           0 :   STACKTOP = i1;
   17084           0 :   return i20 | 0;
   17085           0 :  }
   17086           0 :  i15 = HEAP8[i4 + 2 | 0] | 0;
   17087           0 :  if (i15 << 24 >> 24 == 0) {
   17088           0 :   i2 = i13 & 255 | (i10 & 255) << 8;
   17089           0 :   i3 = i9;
   17090           0 :   i4 = HEAPU8[i8] << 8 | i9 & 255;
   17091           0 :   while (1) {
   17092           0 :    i5 = i4 & 65535;
   17093           0 :    if ((i5 | 0) == (i2 | 0)) {
   17094           0 :     break;
   17095           0 :    }
   17096           0 :    i11 = i11 + 1 | 0;
   17097           0 :    i4 = HEAP8[i11] | 0;
   17098           0 :    if (i4 << 24 >> 24 == 0) {
   17099           0 :     i3 = 0;
   17100           0 :     break;
   17101           0 :    } else {
   17102           0 :     i3 = i4;
   17103           0 :     i4 = i4 & 255 | i5 << 8;
   17104           0 :    }
   17105           0 :   }
   17106           0 :   i20 = i3 << 24 >> 24 == 0 ? 0 : i11 + -1 | 0;
   17107           0 :   STACKTOP = i1;
   17108           0 :   return i20 | 0;
   17109           0 :  }
   17110           0 :  i16 = i8 + 2 | 0;
   17111           0 :  i11 = HEAP8[i16] | 0;
   17112           0 :  if (i11 << 24 >> 24 == 0) {
   17113           0 :   i20 = 0;
   17114           0 :   STACKTOP = i1;
   17115           0 :   return i20 | 0;
   17116           0 :  }
   17117           0 :  i18 = HEAP8[i4 + 3 | 0] | 0;
   17118           0 :  if (i18 << 24 >> 24 == 0) {
   17119           0 :   i2 = (i13 & 255) << 16 | (i10 & 255) << 24 | (i15 & 255) << 8;
   17120           0 :   i4 = (i11 & 255) << 8 | (i9 & 255) << 16 | HEAPU8[i8] << 24;
   17121           0 :   if ((i4 | 0) == (i2 | 0)) {
   17122           0 :    i3 = 0;
   17123           0 :   } else {
   17124           0 :    do {
   17125           0 :     i16 = i16 + 1 | 0;
   17126           0 :     i3 = HEAP8[i16] | 0;
   17127           0 :     i4 = (i3 & 255 | i4) << 8;
   17128           0 :     i3 = i3 << 24 >> 24 == 0;
   17129           0 :    } while (!(i3 | (i4 | 0) == (i2 | 0)));
   17130           0 :   }
   17131           0 :   i20 = i3 ? 0 : i16 + -2 | 0;
   17132           0 :   STACKTOP = i1;
   17133           0 :   return i20 | 0;
   17134           0 :  }
   17135           0 :  i16 = i8 + 3 | 0;
   17136           0 :  i17 = HEAP8[i16] | 0;
   17137           0 :  if (i17 << 24 >> 24 == 0) {
   17138           0 :   i20 = 0;
   17139           0 :   STACKTOP = i1;
   17140           0 :   return i20 | 0;
   17141           0 :  }
   17142           0 :  if ((HEAP8[i4 + 4 | 0] | 0) == 0) {
   17143           0 :   i2 = (i13 & 255) << 16 | (i10 & 255) << 24 | (i15 & 255) << 8 | i18 & 255;
   17144           0 :   i3 = (i11 & 255) << 8 | (i9 & 255) << 16 | i17 & 255 | HEAPU8[i8] << 24;
   17145           0 :   if ((i3 | 0) == (i2 | 0)) {
   17146           0 :    i4 = 0;
   17147           0 :   } else {
   17148           0 :    do {
   17149           0 :     i16 = i16 + 1 | 0;
   17150           0 :     i4 = HEAP8[i16] | 0;
   17151           0 :     i3 = i4 & 255 | i3 << 8;
   17152           0 :     i4 = i4 << 24 >> 24 == 0;
   17153           0 :    } while (!(i4 | (i3 | 0) == (i2 | 0)));
   17154           0 :   }
   17155           0 :   i20 = i4 ? 0 : i16 + -3 | 0;
   17156           0 :   STACKTOP = i1;
   17157           0 :   return i20 | 0;
   17158           0 :  }
   17159           0 :  HEAP32[i6 + 0 >> 2] = 0;
   17160           0 :  HEAP32[i6 + 4 >> 2] = 0;
   17161           0 :  HEAP32[i6 + 8 >> 2] = 0;
   17162           0 :  HEAP32[i6 + 12 >> 2] = 0;
   17163           0 :  HEAP32[i6 + 16 >> 2] = 0;
   17164           0 :  HEAP32[i6 + 20 >> 2] = 0;
   17165           0 :  HEAP32[i6 + 24 >> 2] = 0;
   17166           0 :  HEAP32[i6 + 28 >> 2] = 0;
   17167           0 :  i9 = 0;
   17168           0 :  while (1) {
   17169           0 :   if ((HEAP8[i8 + i9 | 0] | 0) == 0) {
   17170           0 :    i14 = 0;
   17171           0 :    i12 = 80;
   17172           0 :    break;
   17173           0 :   }
   17174           0 :   i20 = i10 & 255;
   17175           0 :   i3 = i6 + (i20 >>> 5 << 2) | 0;
   17176           0 :   HEAP32[i3 >> 2] = HEAP32[i3 >> 2] | 1 << (i20 & 31);
   17177           0 :   i3 = i9 + 1 | 0;
   17178           0 :   HEAP32[i2 + (i20 << 2) >> 2] = i3;
   17179           0 :   i10 = HEAP8[i4 + i3 | 0] | 0;
   17180           0 :   if (i10 << 24 >> 24 == 0) {
   17181           0 :    break;
   17182           0 :   } else {
   17183           0 :    i9 = i3;
   17184           0 :   }
   17185           0 :  }
   17186           0 :  if ((i12 | 0) == 80) {
   17187           0 :   STACKTOP = i1;
   17188           0 :   return i14 | 0;
   17189           0 :  }
   17190           0 :  L49 : do {
   17191           0 :   if (i3 >>> 0 > 1) {
   17192           0 :    i14 = 1;
   17193           0 :    i11 = -1;
   17194           0 :    i12 = 0;
   17195           0 :    L50 : while (1) {
   17196           0 :     i10 = 1;
   17197           0 :     while (1) {
   17198           0 :      i13 = i14;
   17199           0 :      L54 : while (1) {
   17200           0 :       i14 = 1;
   17201           0 :       while (1) {
   17202           0 :        i15 = HEAP8[i4 + (i14 + i11) | 0] | 0;
   17203           0 :        i16 = HEAP8[i4 + i13 | 0] | 0;
   17204           0 :        if (!(i15 << 24 >> 24 == i16 << 24 >> 24)) {
   17205           0 :         break L54;
   17206           0 :        }
   17207           0 :        i15 = i14 + 1 | 0;
   17208           0 :        if ((i14 | 0) == (i10 | 0)) {
   17209           0 :         break;
   17210           0 :        }
   17211           0 :        i13 = i15 + i12 | 0;
   17212           0 :        if (i13 >>> 0 < i3 >>> 0) {
   17213           0 :         i14 = i15;
   17214           0 :        } else {
   17215           0 :         break L50;
   17216           0 :        }
   17217           0 :       }
   17218           0 :       i12 = i12 + i10 | 0;
   17219           0 :       i13 = i12 + 1 | 0;
   17220           0 :       if (!(i13 >>> 0 < i3 >>> 0)) {
   17221           0 :        break L50;
   17222           0 :       }
   17223           0 :      }
   17224           0 :      i10 = i13 - i11 | 0;
   17225           0 :      if (!((i15 & 255) > (i16 & 255))) {
   17226           0 :       break;
   17227           0 :      }
   17228           0 :      i14 = i13 + 1 | 0;
   17229           0 :      if (i14 >>> 0 < i3 >>> 0) {
   17230           0 :       i12 = i13;
   17231           0 :      } else {
   17232           0 :       break L50;
   17233           0 :      }
   17234           0 :     }
   17235           0 :     i14 = i12 + 2 | 0;
   17236           0 :     if (i14 >>> 0 < i3 >>> 0) {
   17237           0 :      i11 = i12;
   17238           0 :      i12 = i12 + 1 | 0;
   17239           0 :     } else {
   17240           0 :      i11 = i12;
   17241           0 :      i10 = 1;
   17242           0 :      break;
   17243           0 :     }
   17244           0 :    }
   17245           0 :    i16 = 1;
   17246           0 :    i12 = -1;
   17247           0 :    i14 = 0;
   17248           0 :    while (1) {
   17249           0 :     i13 = 1;
   17250           0 :     while (1) {
   17251           0 :      i15 = i16;
   17252           0 :      L69 : while (1) {
   17253           0 :       i18 = 1;
   17254           0 :       while (1) {
   17255           0 :        i17 = HEAP8[i4 + (i18 + i12) | 0] | 0;
   17256           0 :        i16 = HEAP8[i4 + i15 | 0] | 0;
   17257           0 :        if (!(i17 << 24 >> 24 == i16 << 24 >> 24)) {
   17258           0 :         break L69;
   17259           0 :        }
   17260           0 :        i16 = i18 + 1 | 0;
   17261           0 :        if ((i18 | 0) == (i13 | 0)) {
   17262           0 :         break;
   17263           0 :        }
   17264           0 :        i15 = i16 + i14 | 0;
   17265           0 :        if (i15 >>> 0 < i3 >>> 0) {
   17266           0 :         i18 = i16;
   17267           0 :        } else {
   17268           0 :         i14 = i12;
   17269           0 :         break L49;
   17270           0 :        }
   17271           0 :       }
   17272           0 :       i14 = i14 + i13 | 0;
   17273           0 :       i15 = i14 + 1 | 0;
   17274           0 :       if (!(i15 >>> 0 < i3 >>> 0)) {
   17275           0 :        i14 = i12;
   17276           0 :        break L49;
   17277           0 :       }
   17278           0 :      }
   17279           0 :      i13 = i15 - i12 | 0;
   17280           0 :      if (!((i17 & 255) < (i16 & 255))) {
   17281           0 :       break;
   17282           0 :      }
   17283           0 :      i16 = i15 + 1 | 0;
   17284           0 :      if (i16 >>> 0 < i3 >>> 0) {
   17285           0 :       i14 = i15;
   17286           0 :      } else {
   17287           0 :       i14 = i12;
   17288           0 :       break L49;
   17289           0 :      }
   17290           0 :     }
   17291           0 :     i16 = i14 + 2 | 0;
   17292           0 :     if (i16 >>> 0 < i3 >>> 0) {
   17293           0 :      i12 = i14;
   17294           0 :      i14 = i14 + 1 | 0;
   17295           0 :     } else {
   17296           0 :      i13 = 1;
   17297           0 :      break;
   17298           0 :     }
   17299           0 :    }
   17300           0 :   } else {
   17301           0 :    i11 = -1;
   17302           0 :    i14 = -1;
   17303           0 :    i10 = 1;
   17304           0 :    i13 = 1;
   17305           0 :   }
   17306           0 :  } while (0);
   17307           0 :  i15 = (i14 + 1 | 0) >>> 0 > (i11 + 1 | 0) >>> 0;
   17308           0 :  i12 = i15 ? i13 : i10;
   17309           0 :  i11 = i15 ? i14 : i11;
   17310           0 :  i10 = i11 + 1 | 0;
   17311           0 :  if ((_memcmp(i4, i4 + i12 | 0, i10) | 0) == 0) {
   17312           0 :   i15 = i3 - i12 | 0;
   17313           0 :   i16 = i3 | 63;
   17314           0 :   if ((i3 | 0) != (i12 | 0)) {
   17315           0 :    i14 = i8;
   17316           0 :    i13 = 0;
   17317           0 :    i17 = i8;
   17318           0 :    L82 : while (1) {
   17319           0 :     i18 = i14;
   17320           0 :     do {
   17321           0 :      if ((i17 - i18 | 0) >>> 0 < i3 >>> 0) {
   17322           0 :       i19 = _memchr(i17, 0, i16) | 0;
   17323           0 :       if ((i19 | 0) != 0) {
   17324           0 :        if ((i19 - i18 | 0) >>> 0 < i3 >>> 0) {
   17325           0 :         i14 = 0;
   17326           0 :         i12 = 80;
   17327           0 :         break L82;
   17328           0 :        } else {
   17329           0 :         i17 = i19;
   17330           0 :         break;
   17331           0 :        }
   17332           0 :       } else {
   17333           0 :        i17 = i17 + i16 | 0;
   17334           0 :        break;
   17335           0 :       }
   17336           0 :      }
   17337           0 :     } while (0);
   17338           0 :     i18 = HEAPU8[i14 + i9 | 0] | 0;
   17339           0 :     if ((1 << (i18 & 31) & HEAP32[i6 + (i18 >>> 5 << 2) >> 2] | 0) == 0) {
   17340           0 :      i14 = i14 + i3 | 0;
   17341           0 :      i13 = 0;
   17342           0 :      continue;
   17343           0 :     }
   17344           0 :     i20 = HEAP32[i2 + (i18 << 2) >> 2] | 0;
   17345           0 :     i18 = i3 - i20 | 0;
   17346           0 :     if ((i3 | 0) != (i20 | 0)) {
   17347           0 :      i14 = i14 + ((i13 | 0) != 0 & i18 >>> 0 < i12 >>> 0 ? i15 : i18) | 0;
   17348           0 :      i13 = 0;
   17349           0 :      continue;
   17350           0 :     }
   17351           0 :     i20 = i10 >>> 0 > i13 >>> 0 ? i10 : i13;
   17352           0 :     i18 = HEAP8[i4 + i20 | 0] | 0;
   17353           0 :     L96 : do {
   17354           0 :      if (i18 << 24 >> 24 == 0) {
   17355           0 :       i19 = i10;
   17356           0 :      } else {
   17357           0 :       while (1) {
   17358           0 :        i19 = i20 + 1 | 0;
   17359           0 :        if (!(i18 << 24 >> 24 == (HEAP8[i14 + i20 | 0] | 0))) {
   17360           0 :         break;
   17361           0 :        }
   17362           0 :        i18 = HEAP8[i4 + i19 | 0] | 0;
   17363           0 :        if (i18 << 24 >> 24 == 0) {
   17364           0 :         i19 = i10;
   17365           0 :         break L96;
   17366           0 :        } else {
   17367           0 :         i20 = i19;
   17368           0 :        }
   17369           0 :       }
   17370           0 :       i14 = i14 + (i20 - i11) | 0;
   17371           0 :       i13 = 0;
   17372           0 :       continue L82;
   17373           0 :      }
   17374           0 :     } while (0);
   17375           0 :     while (1) {
   17376           0 :      if (!(i19 >>> 0 > i13 >>> 0)) {
   17377           0 :       break;
   17378           0 :      }
   17379           0 :      i18 = i19 + -1 | 0;
   17380           0 :      if ((HEAP8[i4 + i18 | 0] | 0) == (HEAP8[i14 + i18 | 0] | 0)) {
   17381           0 :       i19 = i18;
   17382           0 :      } else {
   17383           0 :       break;
   17384           0 :      }
   17385           0 :     }
   17386           0 :     if ((i19 | 0) == (i13 | 0)) {
   17387           0 :      i12 = 80;
   17388           0 :      break;
   17389           0 :     }
   17390           0 :     i14 = i14 + i12 | 0;
   17391           0 :     i13 = i15;
   17392           0 :    }
   17393           0 :    if ((i12 | 0) == 80) {
   17394           0 :     STACKTOP = i1;
   17395           0 :     return i14 | 0;
   17396           0 :    }
   17397           0 :   } else {
   17398           0 :    i5 = i16;
   17399           0 :    i7 = i3;
   17400           0 :   }
   17401           0 :  } else {
   17402           0 :   i7 = i3 - i11 + -1 | 0;
   17403           0 :   i5 = i3 | 63;
   17404           0 :   i7 = (i11 >>> 0 > i7 >>> 0 ? i11 : i7) + 1 | 0;
   17405           0 :  }
   17406           0 :  i12 = i4 + i10 | 0;
   17407           0 :  i14 = i8;
   17408           0 :  L111 : while (1) {
   17409           0 :   i13 = i14;
   17410           0 :   do {
   17411           0 :    if ((i8 - i13 | 0) >>> 0 < i3 >>> 0) {
   17412           0 :     i15 = _memchr(i8, 0, i5) | 0;
   17413           0 :     if ((i15 | 0) != 0) {
   17414           0 :      if ((i15 - i13 | 0) >>> 0 < i3 >>> 0) {
   17415           0 :       i14 = 0;
   17416           0 :       i12 = 80;
   17417           0 :       break L111;
   17418           0 :      } else {
   17419           0 :       i8 = i15;
   17420           0 :       break;
   17421           0 :      }
   17422           0 :     } else {
   17423           0 :      i8 = i8 + i5 | 0;
   17424           0 :      break;
   17425           0 :     }
   17426           0 :    }
   17427           0 :   } while (0);
   17428           0 :   i13 = HEAPU8[i14 + i9 | 0] | 0;
   17429           0 :   if ((1 << (i13 & 31) & HEAP32[i6 + (i13 >>> 5 << 2) >> 2] | 0) == 0) {
   17430           0 :    i14 = i14 + i3 | 0;
   17431           0 :    continue;
   17432           0 :   }
   17433           0 :   i13 = HEAP32[i2 + (i13 << 2) >> 2] | 0;
   17434           0 :   if ((i3 | 0) != (i13 | 0)) {
   17435           0 :    i14 = i14 + (i3 - i13) | 0;
   17436           0 :    continue;
   17437           0 :   }
   17438           0 :   i15 = HEAP8[i12] | 0;
   17439           0 :   L125 : do {
   17440           0 :    if (i15 << 24 >> 24 == 0) {
   17441           0 :     i13 = i10;
   17442           0 :    } else {
   17443           0 :     i16 = i10;
   17444           0 :     while (1) {
   17445           0 :      i13 = i16 + 1 | 0;
   17446           0 :      if (!(i15 << 24 >> 24 == (HEAP8[i14 + i16 | 0] | 0))) {
   17447           0 :       break;
   17448           0 :      }
   17449           0 :      i15 = HEAP8[i4 + i13 | 0] | 0;
   17450           0 :      if (i15 << 24 >> 24 == 0) {
   17451           0 :       i13 = i10;
   17452           0 :       break L125;
   17453           0 :      } else {
   17454           0 :       i16 = i13;
   17455           0 :      }
   17456           0 :     }
   17457           0 :     i14 = i14 + (i16 - i11) | 0;
   17458           0 :     continue L111;
   17459           0 :    }
   17460           0 :   } while (0);
   17461           0 :   do {
   17462           0 :    if ((i13 | 0) == 0) {
   17463           0 :     i12 = 80;
   17464           0 :     break L111;
   17465           0 :    }
   17466           0 :    i13 = i13 + -1 | 0;
   17467           0 :   } while ((HEAP8[i4 + i13 | 0] | 0) == (HEAP8[i14 + i13 | 0] | 0));
   17468           0 :   i14 = i14 + i7 | 0;
   17469           0 :  }
   17470           0 :  if ((i12 | 0) == 80) {
   17471           0 :   STACKTOP = i1;
   17472           0 :   return i14 | 0;
   17473           0 :  }
   17474           0 :  return 0;
   17475           1 : }
   17476           5 : function _str_format(i2) {
   17477           5 :  i2 = i2 | 0;
   17478           5 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0, i22 = 0;
   17479           5 :  i12 = STACKTOP;
   17480           5 :  STACKTOP = STACKTOP + 1104 | 0;
   17481           5 :  i4 = i12;
   17482           5 :  i7 = i12 + 1060 | 0;
   17483           5 :  i9 = i12 + 1082 | 0;
   17484           5 :  i20 = i12 + 1056 | 0;
   17485           5 :  i10 = i12 + 16 | 0;
   17486           5 :  i5 = i12 + 1064 | 0;
   17487           5 :  i6 = i12 + 8 | 0;
   17488           5 :  i8 = _lua_gettop(i2) | 0;
   17489           5 :  i16 = _luaL_checklstring(i2, 1, i20) | 0;
   17490           5 :  i20 = HEAP32[i20 >> 2] | 0;
   17491           5 :  i3 = i16 + i20 | 0;
   17492           5 :  _luaL_buffinit(i2, i10);
   17493           5 :  L1 : do {
   17494           5 :   if ((i20 | 0) > 0) {
   17495           5 :    i1 = i10 + 8 | 0;
   17496           5 :    i13 = i10 + 4 | 0;
   17497           5 :    i14 = i5 + 1 | 0;
   17498           5 :    i19 = 1;
   17499           5 :    L3 : while (1) {
   17500           5 :     while (1) {
   17501           5 :      i15 = HEAP8[i16] | 0;
   17502           5 :      if (i15 << 24 >> 24 == 37) {
   17503           5 :       i18 = i16 + 1 | 0;
   17504           5 :       if ((HEAP8[i18] | 0) != 37) {
   17505           5 :        break;
   17506           5 :       }
   17507           5 :       i15 = HEAP32[i1 >> 2] | 0;
   17508           5 :       if (i15 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0) {
   17509           5 :        i17 = 37;
   17510           5 :       } else {
   17511           5 :        _luaL_prepbuffsize(i10, 1) | 0;
   17512           5 :        i15 = HEAP32[i1 >> 2] | 0;
   17513           5 :        i17 = HEAP8[i18] | 0;
   17514           5 :       }
   17515           5 :       HEAP32[i1 >> 2] = i15 + 1;
   17516           5 :       HEAP8[(HEAP32[i10 >> 2] | 0) + i15 | 0] = i17;
   17517           5 :       i16 = i16 + 2 | 0;
   17518           5 :      } else {
   17519           5 :       i17 = HEAP32[i1 >> 2] | 0;
   17520           5 :       if (!(i17 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
   17521           5 :        _luaL_prepbuffsize(i10, 1) | 0;
   17522           5 :        i17 = HEAP32[i1 >> 2] | 0;
   17523           5 :        i15 = HEAP8[i16] | 0;
   17524           5 :       }
   17525           5 :       HEAP32[i1 >> 2] = i17 + 1;
   17526           5 :       HEAP8[(HEAP32[i10 >> 2] | 0) + i17 | 0] = i15;
   17527           5 :       i16 = i16 + 1 | 0;
   17528           5 :      }
   17529           5 :      if (!(i16 >>> 0 < i3 >>> 0)) {
   17530           5 :       break L1;
   17531           5 :      }
   17532           5 :     }
   17533           5 :     i17 = _luaL_prepbuffsize(i10, 512) | 0;
   17534           5 :     i15 = i19 + 1 | 0;
   17535           5 :     if ((i19 | 0) >= (i8 | 0)) {
   17536           5 :      _luaL_argerror(i2, i15, 7648) | 0;
   17537           5 :     }
   17538           5 :     i19 = HEAP8[i18] | 0;
   17539           5 :     L22 : do {
   17540           5 :      if (i19 << 24 >> 24 == 0) {
   17541           5 :       i19 = 0;
   17542           5 :       i20 = i18;
   17543           5 :      } else {
   17544           5 :       i20 = i18;
   17545           5 :       while (1) {
   17546           5 :        i16 = i20 + 1 | 0;
   17547           5 :        if ((_memchr(7800, i19 << 24 >> 24, 6) | 0) == 0) {
   17548           5 :         break L22;
   17549           5 :        }
   17550           5 :        i19 = HEAP8[i16] | 0;
   17551           5 :        if (i19 << 24 >> 24 == 0) {
   17552           5 :         i19 = 0;
   17553           5 :         i20 = i16;
   17554           5 :         break;
   17555           5 :        } else {
   17556           5 :         i20 = i16;
   17557           5 :        }
   17558           5 :       }
   17559           5 :      }
   17560           5 :     } while (0);
   17561           5 :     i16 = i18;
   17562           5 :     if ((i20 - i16 | 0) >>> 0 > 5) {
   17563           5 :      _luaL_error(i2, 7808, i4) | 0;
   17564           5 :      i19 = HEAP8[i20] | 0;
   17565           5 :     }
   17566           5 :     i19 = ((i19 & 255) + -48 | 0) >>> 0 < 10 ? i20 + 1 | 0 : i20;
   17567           5 :     i19 = ((HEAPU8[i19] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 1 | 0 : i19;
   17568           5 :     i20 = HEAP8[i19] | 0;
   17569           5 :     if (i20 << 24 >> 24 == 46) {
   17570           5 :      i20 = i19 + 1 | 0;
   17571           5 :      i19 = ((HEAPU8[i20] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 2 | 0 : i20;
   17572           5 :      i19 = ((HEAPU8[i19] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 1 | 0 : i19;
   17573           5 :      i20 = HEAP8[i19] | 0;
   17574           5 :     }
   17575           5 :     if (((i20 & 255) + -48 | 0) >>> 0 < 10) {
   17576           5 :      _luaL_error(i2, 7840, i4) | 0;
   17577           5 :     }
   17578           5 :     HEAP8[i5] = 37;
   17579           5 :     i16 = i19 - i16 | 0;
   17580           5 :     _memcpy(i14 | 0, i18 | 0, i16 + 1 | 0) | 0;
   17581           5 :     HEAP8[i5 + (i16 + 2) | 0] = 0;
   17582           5 :     i16 = i19 + 1 | 0;
   17583           5 :     i18 = HEAP8[i19] | 0;
   17584           5 :     L36 : do {
   17585           5 :      switch (i18 | 0) {
   17586           5 :      case 115:
   17587           5 :       {
   17588           5 :        i18 = _luaL_tolstring(i2, i15, i6) | 0;
   17589           5 :        if ((_strchr(i5, 46) | 0) == 0 ? (HEAP32[i6 >> 2] | 0) >>> 0 > 99 : 0) {
   17590           5 :         _luaL_addvalue(i10);
   17591           5 :         i17 = 0;
   17592           5 :         break L36;
   17593           5 :        }
   17594           5 :        HEAP32[i4 >> 2] = i18;
   17595           5 :        i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
   17596           5 :        _lua_settop(i2, -2);
   17597           5 :        break;
   17598           5 :       }
   17599           5 :      case 88:
   17600           5 :      case 120:
   17601           5 :      case 117:
   17602           5 :      case 111:
   17603           5 :       {
   17604           5 :        d21 = +_luaL_checknumber(i2, i15);
   17605           5 :        i18 = ~~d21 >>> 0;
   17606           5 :        d21 = d21 - +(i18 >>> 0);
   17607           5 :        if (!(d21 > -1.0 & d21 < 1.0)) {
   17608           5 :         _luaL_argerror(i2, i15, 7696) | 0;
   17609           5 :        }
   17610           5 :        i20 = _strlen(i5 | 0) | 0;
   17611           5 :        i22 = i5 + (i20 + -1) | 0;
   17612           5 :        i19 = HEAP8[i22] | 0;
   17613           5 :        HEAP8[i22] = 108;
   17614           5 :        HEAP8[i22 + 1 | 0] = 0;
   17615           5 :        HEAP8[i5 + i20 | 0] = i19;
   17616           5 :        HEAP8[i5 + (i20 + 1) | 0] = 0;
   17617           5 :        HEAP32[i4 >> 2] = i18;
   17618           5 :        i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
   17619           5 :        break;
   17620           5 :       }
   17621           5 :      case 99:
   17622           5 :       {
   17623           5 :        HEAP32[i4 >> 2] = _luaL_checkinteger(i2, i15) | 0;
   17624           5 :        i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
   17625           5 :        break;
   17626           5 :       }
   17627           5 :      case 113:
   17628           5 :       {
   17629           5 :        i17 = _luaL_checklstring(i2, i15, i7) | 0;
   17630           5 :        i18 = HEAP32[i1 >> 2] | 0;
   17631           5 :        if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
   17632           5 :         _luaL_prepbuffsize(i10, 1) | 0;
   17633           5 :         i18 = HEAP32[i1 >> 2] | 0;
   17634           5 :        }
   17635           5 :        HEAP32[i1 >> 2] = i18 + 1;
   17636           5 :        HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = 34;
   17637           5 :        i22 = HEAP32[i7 >> 2] | 0;
   17638           5 :        HEAP32[i7 >> 2] = i22 + -1;
   17639           5 :        if ((i22 | 0) != 0) {
   17640           5 :         while (1) {
   17641           5 :          i18 = HEAP8[i17] | 0;
   17642           5 :          do {
   17643           5 :           if (i18 << 24 >> 24 == 10 | i18 << 24 >> 24 == 92 | i18 << 24 >> 24 == 34) {
   17644           5 :            i18 = HEAP32[i1 >> 2] | 0;
   17645           5 :            if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
   17646           5 :             _luaL_prepbuffsize(i10, 1) | 0;
   17647           5 :             i18 = HEAP32[i1 >> 2] | 0;
   17648           5 :            }
   17649           5 :            HEAP32[i1 >> 2] = i18 + 1;
   17650           5 :            HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = 92;
   17651           5 :            i18 = HEAP32[i1 >> 2] | 0;
   17652           5 :            if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
   17653           5 :             _luaL_prepbuffsize(i10, 1) | 0;
   17654           5 :             i18 = HEAP32[i1 >> 2] | 0;
   17655           5 :            }
   17656           5 :            i22 = HEAP8[i17] | 0;
   17657           5 :            HEAP32[i1 >> 2] = i18 + 1;
   17658           5 :            HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = i22;
   17659           5 :           } else if (i18 << 24 >> 24 == 0) {
   17660           5 :            i18 = 0;
   17661           5 :            i11 = 44;
   17662           5 :           } else {
   17663           5 :            if ((_iscntrl(i18 & 255 | 0) | 0) != 0) {
   17664           5 :             i18 = HEAP8[i17] | 0;
   17665           5 :             i11 = 44;
   17666           5 :             break;
   17667           5 :            }
   17668           5 :            i18 = HEAP32[i1 >> 2] | 0;
   17669           5 :            if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
   17670           5 :             _luaL_prepbuffsize(i10, 1) | 0;
   17671           5 :             i18 = HEAP32[i1 >> 2] | 0;
   17672           5 :            }
   17673           5 :            i22 = HEAP8[i17] | 0;
   17674           5 :            HEAP32[i1 >> 2] = i18 + 1;
   17675           5 :            HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = i22;
   17676           5 :           }
   17677           5 :          } while (0);
   17678           5 :          if ((i11 | 0) == 44) {
   17679           5 :           i11 = 0;
   17680           5 :           i18 = i18 & 255;
   17681           5 :           if (((HEAPU8[i17 + 1 | 0] | 0) + -48 | 0) >>> 0 < 10) {
   17682           5 :            HEAP32[i4 >> 2] = i18;
   17683           5 :            _sprintf(i9 | 0, 7792, i4 | 0) | 0;
   17684           5 :           } else {
   17685           5 :            HEAP32[i4 >> 2] = i18;
   17686           5 :            _sprintf(i9 | 0, 7784, i4 | 0) | 0;
   17687           5 :           }
   17688           5 :           _luaL_addstring(i10, i9);
   17689           5 :          }
   17690           5 :          i22 = HEAP32[i7 >> 2] | 0;
   17691           5 :          HEAP32[i7 >> 2] = i22 + -1;
   17692           5 :          if ((i22 | 0) == 0) {
   17693           5 :           break;
   17694           5 :          } else {
   17695           5 :           i17 = i17 + 1 | 0;
   17696           5 :          }
   17697           5 :         }
   17698           5 :        }
   17699           5 :        i17 = HEAP32[i1 >> 2] | 0;
   17700           5 :        if (!(i17 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
   17701           5 :         _luaL_prepbuffsize(i10, 1) | 0;
   17702           5 :         i17 = HEAP32[i1 >> 2] | 0;
   17703           5 :        }
   17704           5 :        HEAP32[i1 >> 2] = i17 + 1;
   17705           5 :        HEAP8[(HEAP32[i10 >> 2] | 0) + i17 | 0] = 34;
   17706           5 :        i17 = 0;
   17707           5 :        break;
   17708           5 :       }
   17709           5 :      case 71:
   17710           5 :      case 103:
   17711           5 :      case 102:
   17712           5 :      case 69:
   17713           5 :      case 101:
   17714           5 :       {
   17715           5 :        HEAP8[i5 + (_strlen(i5 | 0) | 0) | 0] = 0;
   17716           5 :        d21 = +_luaL_checknumber(i2, i15);
   17717           5 :        HEAPF64[tempDoublePtr >> 3] = d21;
   17718           5 :        HEAP32[i4 >> 2] = HEAP32[tempDoublePtr >> 2];
   17719           5 :        HEAP32[i4 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
   17720           5 :        i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
   17721           5 :        break;
   17722           5 :       }
   17723           5 :      case 105:
   17724           5 :      case 100:
   17725           5 :       {
   17726           5 :        d21 = +_luaL_checknumber(i2, i15);
   17727           5 :        i18 = ~~d21;
   17728           5 :        d21 = d21 - +(i18 | 0);
   17729           5 :        if (!(d21 > -1.0 & d21 < 1.0)) {
   17730           5 :         _luaL_argerror(i2, i15, 7664) | 0;
   17731           5 :        }
   17732           5 :        i22 = _strlen(i5 | 0) | 0;
   17733           5 :        i19 = i5 + (i22 + -1) | 0;
   17734           5 :        i20 = HEAP8[i19] | 0;
   17735           5 :        HEAP8[i19] = 108;
   17736           5 :        HEAP8[i19 + 1 | 0] = 0;
   17737           5 :        HEAP8[i5 + i22 | 0] = i20;
   17738           5 :        HEAP8[i5 + (i22 + 1) | 0] = 0;
   17739           5 :        HEAP32[i4 >> 2] = i18;
   17740           5 :        i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
   17741           5 :        break;
   17742           5 :       }
   17743           5 :      default:
   17744           5 :       {
   17745           5 :        break L3;
   17746           5 :       }
   17747           5 :      }
   17748           5 :     } while (0);
   17749           5 :     HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + i17;
   17750           5 :     if (i16 >>> 0 < i3 >>> 0) {
   17751           5 :      i19 = i15;
   17752           5 :     } else {
   17753           5 :      break L1;
   17754           5 :     }
   17755           5 :    }
   17756           5 :    HEAP32[i4 >> 2] = i18;
   17757           5 :    i22 = _luaL_error(i2, 7744, i4) | 0;
   17758           5 :    STACKTOP = i12;
   17759           5 :    return i22 | 0;
   17760           5 :   }
   17761           5 :  } while (0);
   17762           5 :  _luaL_pushresult(i10);
   17763           5 :  i22 = 1;
   17764           5 :  STACKTOP = i12;
   17765           5 :  return i22 | 0;
   17766           5 : }
   17767      286015 : function _luaD_precall(i3, i17, i4) {
   17768      286015 :  i3 = i3 | 0;
   17769      286015 :  i17 = i17 | 0;
   17770      286015 :  i4 = i4 | 0;
   17771      286015 :  var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
   17772      286015 :  i1 = STACKTOP;
   17773      286015 :  STACKTOP = STACKTOP + 16 | 0;
   17774      286015 :  i8 = i1;
   17775      286015 :  i6 = i3 + 28 | 0;
   17776      286015 :  i2 = i3 + 8 | 0;
   17777      286015 :  i13 = i3 + 24 | 0;
   17778      286015 :  i14 = i3 + 32 | 0;
   17779      286015 :  while (1) {
   17780      286015 :   i15 = HEAP32[i6 >> 2] | 0;
   17781      286015 :   i16 = i17;
   17782      286015 :   i12 = i15;
   17783      286015 :   i5 = i16 - i12 | 0;
   17784      286015 :   i11 = HEAP32[i17 + 8 >> 2] & 63;
   17785      286015 :   if ((i11 | 0) == 38) {
   17786      286015 :    i11 = 4;
   17787      286015 :    break;
   17788      286015 :   } else if ((i11 | 0) == 22) {
   17789      286015 :    i11 = 3;
   17790      286015 :    break;
   17791      286015 :   } else if ((i11 | 0) == 6) {
   17792      286015 :    i11 = 31;
   17793      286015 :    break;
   17794      286015 :   }
   17795      286015 :   i11 = _luaT_gettmbyobj(i3, i17, 16) | 0;
   17796      286015 :   i15 = i16 - (HEAP32[i6 >> 2] | 0) | 0;
   17797      286015 :   i16 = i11 + 8 | 0;
   17798      286015 :   if ((HEAP32[i16 >> 2] & 15 | 0) != 6) {
   17799      286015 :    i11 = 54;
   17800      286015 :    break;
   17801      286015 :   }
   17802      286015 :   i19 = HEAP32[i2 >> 2] | 0;
   17803      286015 :   if (i19 >>> 0 > i17 >>> 0) {
   17804      286015 :    while (1) {
   17805      286015 :     i18 = i19 + -16 | 0;
   17806      286015 :     i22 = i18;
   17807      286015 :     i21 = HEAP32[i22 + 4 >> 2] | 0;
   17808      286015 :     i20 = i19;
   17809      286015 :     HEAP32[i20 >> 2] = HEAP32[i22 >> 2];
   17810      286015 :     HEAP32[i20 + 4 >> 2] = i21;
   17811      286015 :     HEAP32[i19 + 8 >> 2] = HEAP32[i19 + -8 >> 2];
   17812      286015 :     if (i18 >>> 0 > i17 >>> 0) {
   17813      286015 :      i19 = i18;
   17814      286015 :     } else {
   17815      286015 :      break;
   17816      286015 :     }
   17817      286015 :    }
   17818      286015 :    i19 = HEAP32[i2 >> 2] | 0;
   17819      286015 :   }
   17820      286015 :   i17 = i19 + 16 | 0;
   17821      286015 :   HEAP32[i2 >> 2] = i17;
   17822      286015 :   if (((HEAP32[i13 >> 2] | 0) - i17 | 0) < 16) {
   17823      286015 :    i18 = HEAP32[i14 >> 2] | 0;
   17824      286015 :    if ((i18 | 0) > 1e6) {
   17825      286015 :     i11 = 60;
   17826      286015 :     break;
   17827      286015 :    }
   17828      286015 :    i17 = (i17 - (HEAP32[i6 >> 2] | 0) >> 4) + 5 | 0;
   17829      286015 :    i18 = i18 << 1;
   17830      286015 :    i18 = (i18 | 0) > 1e6 ? 1e6 : i18;
   17831      286015 :    i17 = (i18 | 0) < (i17 | 0) ? i17 : i18;
   17832      286015 :    if ((i17 | 0) > 1e6) {
   17833      286015 :     i11 = 62;
   17834      286015 :     break;
   17835      286015 :    }
   17836      286015 :    _luaD_reallocstack(i3, i17);
   17837      286015 :   }
   17838      286015 :   i22 = HEAP32[i6 >> 2] | 0;
   17839      286015 :   i17 = i22 + i15 | 0;
   17840      286015 :   i19 = i11;
   17841      286015 :   i20 = HEAP32[i19 + 4 >> 2] | 0;
   17842      286015 :   i21 = i17;
   17843      286015 :   HEAP32[i21 >> 2] = HEAP32[i19 >> 2];
   17844      286015 :   HEAP32[i21 + 4 >> 2] = i20;
   17845      286015 :   HEAP32[i22 + (i15 + 8) >> 2] = HEAP32[i16 >> 2];
   17846      286015 :  }
   17847      286015 :  if ((i11 | 0) == 3) {
   17848      286015 :   i10 = i17;
   17849      286015 :  } else if ((i11 | 0) == 4) {
   17850      286015 :   i10 = (HEAP32[i17 >> 2] | 0) + 12 | 0;
   17851      286015 :  } else if ((i11 | 0) == 31) {
   17852      286015 :   i10 = HEAP32[(HEAP32[i17 >> 2] | 0) + 12 >> 2] | 0;
   17853      286015 :   i18 = HEAP32[i2 >> 2] | 0;
   17854      286015 :   i16 = i18;
   17855      286015 :   i11 = i10 + 78 | 0;
   17856      286015 :   i17 = HEAPU8[i11] | 0;
   17857      286015 :   do {
   17858      286015 :    if (((HEAP32[i13 >> 2] | 0) - i16 >> 4 | 0) <= (i17 | 0)) {
   17859      286015 :     i13 = HEAP32[i14 >> 2] | 0;
   17860      286015 :     if ((i13 | 0) > 1e6) {
   17861      286015 :      _luaD_throw(i3, 6);
   17862      286015 :     }
   17863      286015 :     i12 = i17 + 5 + (i16 - i12 >> 4) | 0;
   17864      286015 :     i13 = i13 << 1;
   17865      286015 :     i13 = (i13 | 0) > 1e6 ? 1e6 : i13;
   17866      286015 :     i12 = (i13 | 0) < (i12 | 0) ? i12 : i13;
   17867      286015 :     if ((i12 | 0) > 1e6) {
   17868      286015 :      _luaD_reallocstack(i3, 1000200);
   17869      286015 :      _luaG_runerror(i3, 2224, i8);
   17870      286015 :     } else {
   17871      286015 :      _luaD_reallocstack(i3, i12);
   17872      286015 :      i7 = HEAP32[i6 >> 2] | 0;
   17873      286015 :      i9 = HEAP32[i2 >> 2] | 0;
   17874      286015 :      break;
   17875      286015 :     }
   17876      286015 :    } else {
   17877      286015 :     i7 = i15;
   17878      286015 :     i9 = i18;
   17879      286015 :    }
   17880      286015 :   } while (0);
   17881      286015 :   i6 = i7 + i5 | 0;
   17882      286015 :   i22 = i9 - i6 >> 4;
   17883      286015 :   i12 = i22 + -1 | 0;
   17884      286015 :   i8 = i10 + 76 | 0;
   17885      286015 :   i13 = HEAP8[i8] | 0;
   17886      286015 :   if ((i22 | 0) > (i13 & 255 | 0)) {
   17887      286015 :    i8 = i13;
   17888      286015 :   } else {
   17889      286015 :    i13 = i9;
   17890      286015 :    while (1) {
   17891      286015 :     i9 = i13 + 16 | 0;
   17892      286015 :     HEAP32[i2 >> 2] = i9;
   17893      286015 :     HEAP32[i13 + 8 >> 2] = 0;
   17894      286015 :     i12 = i12 + 1 | 0;
   17895      286015 :     i13 = HEAP8[i8] | 0;
   17896      286015 :     if ((i12 | 0) < (i13 & 255 | 0)) {
   17897      286015 :      i13 = i9;
   17898      286015 :     } else {
   17899      286015 :      i8 = i13;
   17900      286015 :      break;
   17901      286015 :     }
   17902      286015 :    }
   17903      286015 :   }
   17904      286015 :   if ((HEAP8[i10 + 77 | 0] | 0) != 0) {
   17905      286015 :    i5 = i8 & 255;
   17906      286015 :    if (!(i8 << 24 >> 24 == 0) ? (i22 = 0 - i12 | 0, HEAP32[i2 >> 2] = i9 + 16, i19 = i9 + (i22 << 4) | 0, i20 = HEAP32[i19 + 4 >> 2] | 0, i21 = i9, HEAP32[i21 >> 2] = HEAP32[i19 >> 2], HEAP32[i21 + 4 >> 2] = i20, i22 = i9 + (i22 << 4) + 8 | 0, HEAP32[i9 + 8 >> 2] = HEAP32[i22 >> 2], HEAP32[i22 >> 2] = 0, (i8 & 255) > 1) : 0) {
   17907      286015 :     i7 = 1;
   17908      286015 :     do {
   17909      286015 :      i21 = HEAP32[i2 >> 2] | 0;
   17910      286015 :      i22 = i7 - i12 | 0;
   17911      286015 :      HEAP32[i2 >> 2] = i21 + 16;
   17912      286015 :      i18 = i9 + (i22 << 4) | 0;
   17913      286015 :      i19 = HEAP32[i18 + 4 >> 2] | 0;
   17914      286015 :      i20 = i21;
   17915      286015 :      HEAP32[i20 >> 2] = HEAP32[i18 >> 2];
   17916      286015 :      HEAP32[i20 + 4 >> 2] = i19;
   17917      286015 :      i22 = i9 + (i22 << 4) + 8 | 0;
   17918      286015 :      HEAP32[i21 + 8 >> 2] = HEAP32[i22 >> 2];
   17919      286015 :      HEAP32[i22 >> 2] = 0;
   17920      286015 :      i7 = i7 + 1 | 0;
   17921      286015 :     } while ((i7 | 0) < (i5 | 0));
   17922      286015 :    }
   17923      286015 :   } else {
   17924      286015 :    i9 = i7 + (i5 + 16) | 0;
   17925      286015 :   }
   17926      286015 :   i7 = i3 + 16 | 0;
   17927      286015 :   i5 = HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0;
   17928      286015 :   if ((i5 | 0) == 0) {
   17929      286015 :    i5 = _luaE_extendCI(i3) | 0;
   17930      286015 :   }
   17931      286015 :   HEAP32[i7 >> 2] = i5;
   17932      286015 :   HEAP16[i5 + 16 >> 1] = i4;
   17933      286015 :   HEAP32[i5 >> 2] = i6;
   17934      286015 :   HEAP32[i5 + 24 >> 2] = i9;
   17935      286015 :   i22 = i9 + (HEAPU8[i11] << 4) | 0;
   17936      286015 :   HEAP32[i5 + 4 >> 2] = i22;
   17937      286015 :   i4 = i5 + 28 | 0;
   17938      286015 :   HEAP32[i4 >> 2] = HEAP32[i10 + 12 >> 2];
   17939      286015 :   i6 = i5 + 18 | 0;
   17940      286015 :   HEAP8[i6] = 1;
   17941      286015 :   HEAP32[i2 >> 2] = i22;
   17942      286015 :   if ((HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   17943      286015 :    _luaC_step(i3);
   17944      286015 :   }
   17945      286015 :   if ((HEAP8[i3 + 40 | 0] & 1) == 0) {
   17946      286015 :    i22 = 0;
   17947      286015 :    STACKTOP = i1;
   17948      286015 :    return i22 | 0;
   17949      286015 :   }
   17950      286015 :   HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 4;
   17951      286015 :   i2 = HEAP32[i5 + 8 >> 2] | 0;
   17952      286015 :   if (!((HEAP8[i2 + 18 | 0] & 1) == 0) ? (HEAP32[(HEAP32[i2 + 28 >> 2] | 0) + -4 >> 2] & 63 | 0) == 30 : 0) {
   17953      286015 :    HEAP8[i6] = HEAPU8[i6] | 64;
   17954      286015 :    i2 = 4;
   17955      286015 :   } else {
   17956      286015 :    i2 = 0;
   17957      286015 :   }
   17958      286015 :   _luaD_hook(i3, i2, -1);
   17959      286015 :   HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -4;
   17960      286015 :   i22 = 0;
   17961      286015 :   STACKTOP = i1;
   17962      286015 :   return i22 | 0;
   17963      286015 :  } else if ((i11 | 0) == 54) {
   17964      286015 :   _luaG_typeerror(i3, i17, 2520);
   17965      286015 :  } else if ((i11 | 0) == 60) {
   17966      286015 :   _luaD_throw(i3, 6);
   17967      286015 :  } else if ((i11 | 0) == 62) {
   17968      286015 :   _luaD_reallocstack(i3, 1000200);
   17969      286015 :   _luaG_runerror(i3, 2224, i8);
   17970      286015 :  }
   17971      286015 :  i7 = HEAP32[i10 >> 2] | 0;
   17972      286015 :  i9 = HEAP32[i2 >> 2] | 0;
   17973      286015 :  do {
   17974      286015 :   if (((HEAP32[i13 >> 2] | 0) - i9 | 0) < 336) {
   17975      286015 :    i10 = HEAP32[i14 >> 2] | 0;
   17976      286015 :    if ((i10 | 0) > 1e6) {
   17977      286015 :     _luaD_throw(i3, 6);
   17978      286015 :    }
   17979      286015 :    i9 = (i9 - i12 >> 4) + 25 | 0;
   17980      286015 :    i10 = i10 << 1;
   17981      286015 :    i10 = (i10 | 0) > 1e6 ? 1e6 : i10;
   17982      286015 :    i9 = (i10 | 0) < (i9 | 0) ? i9 : i10;
   17983      286015 :    if ((i9 | 0) > 1e6) {
   17984      286015 :     _luaD_reallocstack(i3, 1000200);
   17985      286015 :     _luaG_runerror(i3, 2224, i8);
   17986      286015 :    } else {
   17987      286015 :     _luaD_reallocstack(i3, i9);
   17988      286015 :     break;
   17989      286015 :    }
   17990      286015 :   }
   17991      286015 :  } while (0);
   17992      286015 :  i8 = i3 + 16 | 0;
   17993      286015 :  i9 = HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0;
   17994      286015 :  if ((i9 | 0) == 0) {
   17995      286015 :   i9 = _luaE_extendCI(i3) | 0;
   17996      286015 :  }
   17997      286015 :  HEAP32[i8 >> 2] = i9;
   17998      286015 :  HEAP16[i9 + 16 >> 1] = i4;
   17999      286015 :  HEAP32[i9 >> 2] = (HEAP32[i6 >> 2] | 0) + i5;
   18000      286015 :  HEAP32[i9 + 4 >> 2] = (HEAP32[i2 >> 2] | 0) + 320;
   18001      286015 :  HEAP8[i9 + 18 | 0] = 0;
   18002      286015 :  if ((HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   18003      286015 :   _luaC_step(i3);
   18004      286015 :  }
   18005      286015 :  i5 = i3 + 40 | 0;
   18006      286015 :  if (!((HEAP8[i5] & 1) == 0)) {
   18007      286015 :   _luaD_hook(i3, 0, -1);
   18008      286015 :  }
   18009      286015 :  i7 = FUNCTION_TABLE_ii[i7 & 255](i3) | 0;
   18010      286015 :  i7 = (HEAP32[i2 >> 2] | 0) + (0 - i7 << 4) | 0;
   18011      286015 :  i4 = HEAP32[i8 >> 2] | 0;
   18012      286015 :  i5 = HEAPU8[i5] | 0;
   18013      286015 :  if ((i5 & 6 | 0) == 0) {
   18014      286015 :   i5 = i7;
   18015      286015 :   i6 = i4 + 8 | 0;
   18016      286015 :  } else {
   18017      286015 :   if ((i5 & 2 | 0) == 0) {
   18018      286015 :    i5 = i7;
   18019      286015 :   } else {
   18020      286015 :    i5 = i7 - (HEAP32[i6 >> 2] | 0) | 0;
   18021      286015 :    _luaD_hook(i3, 1, -1);
   18022      286015 :    i5 = (HEAP32[i6 >> 2] | 0) + i5 | 0;
   18023      286015 :   }
   18024      286015 :   i6 = i4 + 8 | 0;
   18025      286015 :   HEAP32[i3 + 20 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + 28 >> 2];
   18026      286015 :  }
   18027      286015 :  i3 = HEAP32[i4 >> 2] | 0;
   18028      286015 :  i4 = HEAP16[i4 + 16 >> 1] | 0;
   18029      286015 :  HEAP32[i8 >> 2] = HEAP32[i6 >> 2];
   18030      286015 :  L82 : do {
   18031      286015 :   if (!(i4 << 16 >> 16 == 0)) {
   18032      286015 :    i4 = i4 << 16 >> 16;
   18033      286015 :    while (1) {
   18034      286015 :     if (!(i5 >>> 0 < (HEAP32[i2 >> 2] | 0) >>> 0)) {
   18035      286015 :      break;
   18036      286015 :     }
   18037      286015 :     i6 = i3 + 16 | 0;
   18038      286015 :     i20 = i5;
   18039      286015 :     i21 = HEAP32[i20 + 4 >> 2] | 0;
   18040      286015 :     i22 = i3;
   18041      286015 :     HEAP32[i22 >> 2] = HEAP32[i20 >> 2];
   18042      286015 :     HEAP32[i22 + 4 >> 2] = i21;
   18043      286015 :     HEAP32[i3 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
   18044      286015 :     i4 = i4 + -1 | 0;
   18045      286015 :     if ((i4 | 0) == 0) {
   18046      286015 :      i3 = i6;
   18047      286015 :      break L82;
   18048      286015 :     }
   18049      286015 :     i5 = i5 + 16 | 0;
   18050      286015 :     i3 = i6;
   18051      286015 :    }
   18052      286015 :    if ((i4 | 0) > 0) {
   18053      286015 :     i5 = i4;
   18054      286015 :     i6 = i3;
   18055      286015 :     while (1) {
   18056      286015 :      i5 = i5 + -1 | 0;
   18057      286015 :      HEAP32[i6 + 8 >> 2] = 0;
   18058      286015 :      if ((i5 | 0) <= 0) {
   18059      286015 :       break;
   18060      286015 :      } else {
   18061      286015 :       i6 = i6 + 16 | 0;
   18062      286015 :      }
   18063      286015 :     }
   18064      286015 :     i3 = i3 + (i4 << 4) | 0;
   18065      286015 :    }
   18066      286015 :   }
   18067      286015 :  } while (0);
   18068      286015 :  HEAP32[i2 >> 2] = i3;
   18069      286015 :  i22 = 1;
   18070      286015 :  STACKTOP = i1;
   18071      286015 :  return i22 | 0;
   18072      286015 : }
   18073           1 : function _lua_getinfo(i1, i6, i29) {
   18074           0 :  i1 = i1 | 0;
   18075           0 :  i6 = i6 | 0;
   18076           0 :  i29 = i29 | 0;
   18077           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0;
   18078           0 :  i3 = STACKTOP;
   18079           0 :  STACKTOP = STACKTOP + 16 | 0;
   18080           0 :  i2 = i3;
   18081           0 :  if ((HEAP8[i6] | 0) == 62) {
   18082           0 :   i10 = i1 + 8 | 0;
   18083           0 :   i7 = (HEAP32[i10 >> 2] | 0) + -16 | 0;
   18084           0 :   HEAP32[i10 >> 2] = i7;
   18085           0 :   i6 = i6 + 1 | 0;
   18086           0 :   i10 = 0;
   18087           0 :  } else {
   18088           0 :   i7 = HEAP32[i29 + 96 >> 2] | 0;
   18089           0 :   i10 = i7;
   18090           0 :   i7 = HEAP32[i7 >> 2] | 0;
   18091           0 :  }
   18092           0 :  i8 = i7 + 8 | 0;
   18093           0 :  if ((HEAP32[i8 >> 2] & 31 | 0) == 6) {
   18094           0 :   i9 = HEAP32[i7 >> 2] | 0;
   18095           0 :  } else {
   18096           0 :   i9 = 0;
   18097           0 :  }
   18098           0 :  i34 = HEAP8[i6] | 0;
   18099           0 :  L8 : do {
   18100           0 :   if (i34 << 24 >> 24 == 0) {
   18101           0 :    i33 = 1;
   18102           0 :   } else {
   18103           0 :    i12 = (i9 | 0) == 0;
   18104           0 :    i27 = i29 + 16 | 0;
   18105           0 :    i28 = i29 + 24 | 0;
   18106           0 :    i21 = i29 + 28 | 0;
   18107           0 :    i25 = i29 + 12 | 0;
   18108           0 :    i26 = i29 + 36 | 0;
   18109           0 :    i19 = i9 + 4 | 0;
   18110           0 :    i24 = i9 + 12 | 0;
   18111           0 :    i18 = (i10 | 0) == 0;
   18112           0 :    i23 = i29 + 20 | 0;
   18113           0 :    i17 = i10 + 18 | 0;
   18114           0 :    i22 = i10 + 28 | 0;
   18115           0 :    i15 = i29 + 32 | 0;
   18116           0 :    i14 = i29 + 34 | 0;
   18117           0 :    i13 = i29 + 33 | 0;
   18118           0 :    i11 = i9 + 6 | 0;
   18119           0 :    i16 = i29 + 35 | 0;
   18120           0 :    i20 = i29 + 8 | 0;
   18121           0 :    i30 = i29 + 4 | 0;
   18122           0 :    i29 = i10 + 8 | 0;
   18123           0 :    i31 = i1 + 12 | 0;
   18124           0 :    i32 = i6;
   18125           0 :    i33 = 1;
   18126           0 :    while (1) {
   18127           0 :     L12 : do {
   18128           0 :      switch (i34 << 24 >> 24 | 0) {
   18129           0 :      case 116:
   18130           0 :       {
   18131           0 :        if (i18) {
   18132           0 :         i34 = 0;
   18133           0 :        } else {
   18134           0 :         i34 = HEAPU8[i17] & 64;
   18135           0 :        }
   18136           0 :        HEAP8[i16] = i34;
   18137           0 :        break;
   18138           0 :       }
   18139           0 :      case 110:
   18140           0 :       {
   18141           0 :        L18 : do {
   18142           0 :         if ((!i18 ? (HEAP8[i17] & 64) == 0 : 0) ? (i5 = HEAP32[i29 >> 2] | 0, !((HEAP8[i5 + 18 | 0] & 1) == 0)) : 0) {
   18143           0 :          i36 = HEAP32[(HEAP32[HEAP32[i5 >> 2] >> 2] | 0) + 12 >> 2] | 0;
   18144           0 :          i35 = HEAP32[i36 + 12 >> 2] | 0;
   18145           0 :          i34 = ((HEAP32[i5 + 28 >> 2] | 0) - i35 >> 2) + -1 | 0;
   18146           0 :          i35 = HEAP32[i35 + (i34 << 2) >> 2] | 0;
   18147           0 :          switch (i35 & 63 | 0) {
   18148           0 :          case 10:
   18149           0 :          case 8:
   18150           0 :           {
   18151           0 :            i34 = 1;
   18152           0 :            i4 = 46;
   18153           0 :            break;
   18154           0 :           }
   18155           0 :          case 24:
   18156           0 :           {
   18157           0 :            i34 = 5;
   18158           0 :            i4 = 46;
   18159           0 :            break;
   18160           0 :           }
   18161           0 :          case 13:
   18162           0 :           {
   18163           0 :            i34 = 6;
   18164           0 :            i4 = 46;
   18165           0 :            break;
   18166           0 :           }
   18167           0 :          case 14:
   18168           0 :           {
   18169           0 :            i34 = 7;
   18170           0 :            i4 = 46;
   18171           0 :            break;
   18172           0 :           }
   18173           0 :          case 15:
   18174           0 :           {
   18175           0 :            i34 = 8;
   18176           0 :            i4 = 46;
   18177           0 :            break;
   18178           0 :           }
   18179           0 :          case 16:
   18180           0 :           {
   18181           0 :            i34 = 9;
   18182           0 :            i4 = 46;
   18183           0 :            break;
   18184           0 :           }
   18185           0 :          case 17:
   18186           0 :           {
   18187           0 :            i34 = 10;
   18188           0 :            i4 = 46;
   18189           0 :            break;
   18190           0 :           }
   18191           0 :          case 18:
   18192           0 :           {
   18193           0 :            i34 = 11;
   18194           0 :            i4 = 46;
   18195           0 :            break;
   18196           0 :           }
   18197           0 :          case 19:
   18198           0 :           {
   18199           0 :            i34 = 12;
   18200           0 :            i4 = 46;
   18201           0 :            break;
   18202           0 :           }
   18203           0 :          case 21:
   18204           0 :           {
   18205           0 :            i34 = 4;
   18206           0 :            i4 = 46;
   18207           0 :            break;
   18208           0 :           }
   18209           0 :          case 25:
   18210           0 :           {
   18211           0 :            i34 = 13;
   18212           0 :            i4 = 46;
   18213           0 :            break;
   18214           0 :           }
   18215           0 :          case 26:
   18216           0 :           {
   18217           0 :            i34 = 14;
   18218           0 :            i4 = 46;
   18219           0 :            break;
   18220           0 :           }
   18221           0 :          case 22:
   18222           0 :           {
   18223           0 :            i34 = 15;
   18224           0 :            i4 = 46;
   18225           0 :            break;
   18226           0 :           }
   18227           0 :          case 7:
   18228           0 :          case 6:
   18229           0 :          case 12:
   18230           0 :           {
   18231           0 :            i34 = 0;
   18232           0 :            i4 = 46;
   18233           0 :            break;
   18234           0 :           }
   18235           0 :          case 34:
   18236           0 :           {
   18237           0 :            i34 = 2120;
   18238           0 :            i35 = 2120;
   18239           0 :            break;
   18240           0 :           }
   18241           0 :          case 30:
   18242           0 :          case 29:
   18243           0 :           {
   18244           0 :            i36 = _getobjname(i36, i34, i35 >>> 6 & 255, i30) | 0;
   18245           0 :            HEAP32[i20 >> 2] = i36;
   18246           0 :            if ((i36 | 0) == 0) {
   18247           0 :             break L18;
   18248           0 :            } else {
   18249           0 :             break L12;
   18250           0 :            }
   18251           0 :           }
   18252           0 :          default:
   18253           0 :           {
   18254           0 :            i4 = 47;
   18255           0 :            break L18;
   18256           0 :           }
   18257           0 :          }
   18258           0 :          if ((i4 | 0) == 46) {
   18259           0 :           i4 = 0;
   18260           0 :           i34 = (HEAP32[(HEAP32[i31 >> 2] | 0) + (i34 << 2) + 184 >> 2] | 0) + 16 | 0;
   18261           0 :           i35 = 2136;
   18262           0 :          }
   18263           0 :          HEAP32[i30 >> 2] = i34;
   18264           0 :          HEAP32[i20 >> 2] = i35;
   18265           0 :          break L12;
   18266           0 :         } else {
   18267           0 :          i4 = 47;
   18268           0 :         }
   18269           0 :        } while (0);
   18270           0 :        if ((i4 | 0) == 47) {
   18271           0 :         i4 = 0;
   18272           0 :         HEAP32[i20 >> 2] = 0;
   18273           0 :        }
   18274           0 :        HEAP32[i20 >> 2] = 2112;
   18275           0 :        HEAP32[i30 >> 2] = 0;
   18276           0 :        break;
   18277           0 :       }
   18278           0 :      case 108:
   18279           0 :       {
   18280           0 :        if (!i18 ? !((HEAP8[i17] & 1) == 0) : 0) {
   18281           0 :         i35 = HEAP32[(HEAP32[HEAP32[i10 >> 2] >> 2] | 0) + 12 >> 2] | 0;
   18282           0 :         i34 = HEAP32[i35 + 20 >> 2] | 0;
   18283           0 :         if ((i34 | 0) == 0) {
   18284           0 :          i34 = 0;
   18285           0 :         } else {
   18286           0 :          i34 = HEAP32[i34 + (((HEAP32[i22 >> 2] | 0) - (HEAP32[i35 + 12 >> 2] | 0) >> 2) + -1 << 2) >> 2] | 0;
   18287           0 :         }
   18288           0 :        } else {
   18289           0 :         i34 = -1;
   18290           0 :        }
   18291           0 :        HEAP32[i23 >> 2] = i34;
   18292           0 :        break;
   18293           0 :       }
   18294           0 :      case 83:
   18295           0 :       {
   18296           0 :        if (!i12 ? (HEAP8[i19] | 0) != 38 : 0) {
   18297           0 :         i34 = HEAP32[i24 >> 2] | 0;
   18298           0 :         i35 = HEAP32[i34 + 36 >> 2] | 0;
   18299           0 :         if ((i35 | 0) == 0) {
   18300           0 :          i35 = 2168;
   18301           0 :         } else {
   18302           0 :          i35 = i35 + 16 | 0;
   18303           0 :         }
   18304           0 :         HEAP32[i27 >> 2] = i35;
   18305           0 :         i36 = HEAP32[i34 + 64 >> 2] | 0;
   18306           0 :         HEAP32[i28 >> 2] = i36;
   18307           0 :         HEAP32[i21 >> 2] = HEAP32[i34 + 68 >> 2];
   18308           0 :         i34 = (i36 | 0) == 0 ? 2176 : 2184;
   18309           0 :        } else {
   18310           0 :         HEAP32[i27 >> 2] = 2152;
   18311           0 :         HEAP32[i28 >> 2] = -1;
   18312           0 :         HEAP32[i21 >> 2] = -1;
   18313           0 :         i35 = 2152;
   18314           0 :         i34 = 2160;
   18315           0 :        }
   18316           0 :        HEAP32[i25 >> 2] = i34;
   18317           0 :        _luaO_chunkid(i26, i35, 60);
   18318           0 :        break;
   18319           0 :       }
   18320           0 :      case 117:
   18321           0 :       {
   18322           0 :        if (!i12) {
   18323           0 :         HEAP8[i15] = HEAP8[i11] | 0;
   18324           0 :         if ((HEAP8[i19] | 0) != 38) {
   18325           0 :          HEAP8[i14] = HEAP8[(HEAP32[i24 >> 2] | 0) + 77 | 0] | 0;
   18326           0 :          HEAP8[i13] = HEAP8[(HEAP32[i24 >> 2] | 0) + 76 | 0] | 0;
   18327           0 :          break L12;
   18328           0 :         }
   18329           0 :        } else {
   18330           0 :         HEAP8[i15] = 0;
   18331           0 :        }
   18332           0 :        HEAP8[i14] = 1;
   18333           0 :        HEAP8[i13] = 0;
   18334           0 :        break;
   18335           0 :       }
   18336           0 :      case 102:
   18337           0 :      case 76:
   18338           0 :       {
   18339           0 :        break;
   18340           0 :       }
   18341           0 :      default:
   18342           0 :       {
   18343           0 :        i33 = 0;
   18344           0 :       }
   18345           0 :      }
   18346           0 :     } while (0);
   18347           0 :     i32 = i32 + 1 | 0;
   18348           0 :     i34 = HEAP8[i32] | 0;
   18349           0 :     if (i34 << 24 >> 24 == 0) {
   18350           0 :      break L8;
   18351           0 :     }
   18352           0 :    }
   18353           0 :   }
   18354           0 :  } while (0);
   18355           0 :  if ((_strchr(i6, 102) | 0) != 0) {
   18356           0 :   i36 = i1 + 8 | 0;
   18357           0 :   i35 = HEAP32[i36 >> 2] | 0;
   18358           0 :   i31 = i7;
   18359           0 :   i32 = HEAP32[i31 + 4 >> 2] | 0;
   18360           0 :   i34 = i35;
   18361           0 :   HEAP32[i34 >> 2] = HEAP32[i31 >> 2];
   18362           0 :   HEAP32[i34 + 4 >> 2] = i32;
   18363           0 :   HEAP32[i35 + 8 >> 2] = HEAP32[i8 >> 2];
   18364           0 :   HEAP32[i36 >> 2] = (HEAP32[i36 >> 2] | 0) + 16;
   18365           0 :  }
   18366           0 :  if ((_strchr(i6, 76) | 0) == 0) {
   18367           0 :   STACKTOP = i3;
   18368           0 :   return i33 | 0;
   18369           0 :  }
   18370           0 :  if ((i9 | 0) != 0 ? (HEAP8[i9 + 4 | 0] | 0) != 38 : 0) {
   18371           0 :   i6 = i9 + 12 | 0;
   18372           0 :   i5 = HEAP32[(HEAP32[i6 >> 2] | 0) + 20 >> 2] | 0;
   18373           0 :   i4 = _luaH_new(i1) | 0;
   18374           0 :   i36 = i1 + 8 | 0;
   18375           0 :   i35 = HEAP32[i36 >> 2] | 0;
   18376           0 :   HEAP32[i35 >> 2] = i4;
   18377           0 :   HEAP32[i35 + 8 >> 2] = 69;
   18378           0 :   HEAP32[i36 >> 2] = (HEAP32[i36 >> 2] | 0) + 16;
   18379           0 :   HEAP32[i2 >> 2] = 1;
   18380           0 :   HEAP32[i2 + 8 >> 2] = 1;
   18381           0 :   if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 52 >> 2] | 0) > 0) {
   18382           0 :    i7 = 0;
   18383           0 :   } else {
   18384           0 :    STACKTOP = i3;
   18385           0 :    return i33 | 0;
   18386           0 :   }
   18387           0 :   do {
   18388           0 :    _luaH_setint(i1, i4, HEAP32[i5 + (i7 << 2) >> 2] | 0, i2);
   18389           0 :    i7 = i7 + 1 | 0;
   18390           0 :   } while ((i7 | 0) < (HEAP32[(HEAP32[i6 >> 2] | 0) + 52 >> 2] | 0));
   18391           0 :   STACKTOP = i3;
   18392           0 :   return i33 | 0;
   18393           0 :  }
   18394           0 :  i36 = i1 + 8 | 0;
   18395           0 :  i35 = HEAP32[i36 >> 2] | 0;
   18396           0 :  HEAP32[i35 + 8 >> 2] = 0;
   18397           0 :  HEAP32[i36 >> 2] = i35 + 16;
   18398           0 :  STACKTOP = i3;
   18399           0 :  return i33 | 0;
   18400           1 : }
   18401           1 : function _read_long_string(i3, i1, i5) {
   18402           0 :  i3 = i3 | 0;
   18403           0 :  i1 = i1 | 0;
   18404           0 :  i5 = i5 | 0;
   18405           0 :  var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
   18406           0 :  i2 = STACKTOP;
   18407           0 :  i14 = HEAP32[i3 >> 2] | 0;
   18408           0 :  i4 = i3 + 60 | 0;
   18409           0 :  i13 = HEAP32[i4 >> 2] | 0;
   18410           0 :  i15 = i13 + 4 | 0;
   18411           0 :  i16 = HEAP32[i15 >> 2] | 0;
   18412           0 :  i10 = i13 + 8 | 0;
   18413           0 :  i12 = HEAP32[i10 >> 2] | 0;
   18414           0 :  do {
   18415           0 :   if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) {
   18416           0 :    if (i12 >>> 0 > 2147483645) {
   18417           0 :     _lexerror(i3, 12368, 0);
   18418           0 :    }
   18419           0 :    i16 = i12 << 1;
   18420           0 :    i17 = HEAP32[i3 + 52 >> 2] | 0;
   18421           0 :    if ((i16 | 0) == -2) {
   18422           0 :     _luaM_toobig(i17);
   18423           0 :    } else {
   18424           0 :     i8 = _luaM_realloc_(i17, HEAP32[i13 >> 2] | 0, i12, i16) | 0;
   18425           0 :     HEAP32[i13 >> 2] = i8;
   18426           0 :     HEAP32[i10 >> 2] = i16;
   18427           0 :     i9 = HEAP32[i15 >> 2] | 0;
   18428           0 :     break;
   18429           0 :    }
   18430           0 :   } else {
   18431           0 :    i9 = i16;
   18432           0 :    i8 = HEAP32[i13 >> 2] | 0;
   18433           0 :   }
   18434           0 :  } while (0);
   18435           0 :  HEAP32[i15 >> 2] = i9 + 1;
   18436           0 :  HEAP8[i8 + i9 | 0] = i14;
   18437           0 :  i9 = i3 + 56 | 0;
   18438           0 :  i8 = HEAP32[i9 >> 2] | 0;
   18439           0 :  i18 = HEAP32[i8 >> 2] | 0;
   18440           0 :  HEAP32[i8 >> 2] = i18 + -1;
   18441           0 :  if ((i18 | 0) == 0) {
   18442           0 :   i12 = _luaZ_fill(i8) | 0;
   18443           0 :  } else {
   18444           0 :   i18 = i8 + 4 | 0;
   18445           0 :   i12 = HEAP32[i18 >> 2] | 0;
   18446           0 :   HEAP32[i18 >> 2] = i12 + 1;
   18447           0 :   i12 = HEAPU8[i12] | 0;
   18448           0 :  }
   18449           0 :  HEAP32[i3 >> 2] = i12;
   18450           0 :  if ((i12 | 0) == 13 | (i12 | 0) == 10) {
   18451           0 :   _inclinenumber(i3);
   18452           0 :   i11 = 13;
   18453           0 :  }
   18454           0 :  L17 : while (1) {
   18455           0 :   if ((i11 | 0) == 13) {
   18456           0 :    i11 = 0;
   18457           0 :    i12 = HEAP32[i3 >> 2] | 0;
   18458           0 :   }
   18459           0 :   i8 = (i1 | 0) == 0;
   18460           0 :   i10 = i3 + 52 | 0;
   18461           0 :   L21 : do {
   18462           0 :    if (i8) {
   18463           0 :     while (1) {
   18464           0 :      if ((i12 | 0) == 13 | (i12 | 0) == 10) {
   18465           0 :       break L21;
   18466           0 :      } else if ((i12 | 0) == 93) {
   18467           0 :       i11 = 22;
   18468           0 :       break L21;
   18469           0 :      } else if ((i12 | 0) == -1) {
   18470           0 :       i11 = 21;
   18471           0 :       break L17;
   18472           0 :      }
   18473           0 :      i12 = HEAP32[i9 >> 2] | 0;
   18474           0 :      i18 = HEAP32[i12 >> 2] | 0;
   18475           0 :      HEAP32[i12 >> 2] = i18 + -1;
   18476           0 :      if ((i18 | 0) == 0) {
   18477           0 :       i12 = _luaZ_fill(i12) | 0;
   18478           0 :      } else {
   18479           0 :       i18 = i12 + 4 | 0;
   18480           0 :       i12 = HEAP32[i18 >> 2] | 0;
   18481           0 :       HEAP32[i18 >> 2] = i12 + 1;
   18482           0 :       i12 = HEAPU8[i12] | 0;
   18483           0 :      }
   18484           0 :      HEAP32[i3 >> 2] = i12;
   18485           0 :     }
   18486           0 :    } else {
   18487           0 :     while (1) {
   18488           0 :      if ((i12 | 0) == 13 | (i12 | 0) == 10) {
   18489           0 :       break L21;
   18490           0 :      } else if ((i12 | 0) == 93) {
   18491           0 :       i11 = 22;
   18492           0 :       break L21;
   18493           0 :      } else if ((i12 | 0) == -1) {
   18494           0 :       i11 = 21;
   18495           0 :       break L17;
   18496           0 :      }
   18497           0 :      i14 = HEAP32[i4 >> 2] | 0;
   18498           0 :      i13 = i14 + 4 | 0;
   18499           0 :      i17 = HEAP32[i13 >> 2] | 0;
   18500           0 :      i16 = i14 + 8 | 0;
   18501           0 :      i15 = HEAP32[i16 >> 2] | 0;
   18502           0 :      if ((i17 + 1 | 0) >>> 0 > i15 >>> 0) {
   18503           0 :       if (i15 >>> 0 > 2147483645) {
   18504           0 :        i11 = 46;
   18505           0 :        break L17;
   18506           0 :       }
   18507           0 :       i17 = i15 << 1;
   18508           0 :       i18 = HEAP32[i10 >> 2] | 0;
   18509           0 :       if ((i17 | 0) == -2) {
   18510           0 :        i11 = 48;
   18511           0 :        break L17;
   18512           0 :       }
   18513           0 :       i18 = _luaM_realloc_(i18, HEAP32[i14 >> 2] | 0, i15, i17) | 0;
   18514           0 :       HEAP32[i14 >> 2] = i18;
   18515           0 :       HEAP32[i16 >> 2] = i17;
   18516           0 :       i17 = HEAP32[i13 >> 2] | 0;
   18517           0 :       i14 = i18;
   18518           0 :      } else {
   18519           0 :       i14 = HEAP32[i14 >> 2] | 0;
   18520           0 :      }
   18521           0 :      HEAP32[i13 >> 2] = i17 + 1;
   18522           0 :      HEAP8[i14 + i17 | 0] = i12;
   18523           0 :      i12 = HEAP32[i9 >> 2] | 0;
   18524           0 :      i18 = HEAP32[i12 >> 2] | 0;
   18525           0 :      HEAP32[i12 >> 2] = i18 + -1;
   18526           0 :      if ((i18 | 0) == 0) {
   18527           0 :       i12 = _luaZ_fill(i12) | 0;
   18528           0 :      } else {
   18529           0 :       i18 = i12 + 4 | 0;
   18530           0 :       i12 = HEAP32[i18 >> 2] | 0;
   18531           0 :       HEAP32[i18 >> 2] = i12 + 1;
   18532           0 :       i12 = HEAPU8[i12] | 0;
   18533           0 :      }
   18534           0 :      HEAP32[i3 >> 2] = i12;
   18535           0 :     }
   18536           0 :    }
   18537           0 :   } while (0);
   18538           0 :   if ((i11 | 0) == 22) {
   18539           0 :    if ((_skip_sep(i3) | 0) == (i5 | 0)) {
   18540           0 :     i11 = 23;
   18541           0 :     break;
   18542           0 :    } else {
   18543           0 :     i11 = 13;
   18544           0 :     continue;
   18545           0 :    }
   18546           0 :   }
   18547           0 :   i12 = HEAP32[i4 >> 2] | 0;
   18548           0 :   i11 = i12 + 4 | 0;
   18549           0 :   i15 = HEAP32[i11 >> 2] | 0;
   18550           0 :   i14 = i12 + 8 | 0;
   18551           0 :   i13 = HEAP32[i14 >> 2] | 0;
   18552           0 :   if ((i15 + 1 | 0) >>> 0 > i13 >>> 0) {
   18553           0 :    if (i13 >>> 0 > 2147483645) {
   18554           0 :     i11 = 37;
   18555           0 :     break;
   18556           0 :    }
   18557           0 :    i15 = i13 << 1;
   18558           0 :    i10 = HEAP32[i10 >> 2] | 0;
   18559           0 :    if ((i15 | 0) == -2) {
   18560           0 :     i11 = 39;
   18561           0 :     break;
   18562           0 :    }
   18563           0 :    i10 = _luaM_realloc_(i10, HEAP32[i12 >> 2] | 0, i13, i15) | 0;
   18564           0 :    HEAP32[i12 >> 2] = i10;
   18565           0 :    HEAP32[i14 >> 2] = i15;
   18566           0 :    i15 = HEAP32[i11 >> 2] | 0;
   18567           0 :   } else {
   18568           0 :    i10 = HEAP32[i12 >> 2] | 0;
   18569           0 :   }
   18570           0 :   HEAP32[i11 >> 2] = i15 + 1;
   18571           0 :   HEAP8[i10 + i15 | 0] = 10;
   18572           0 :   _inclinenumber(i3);
   18573           0 :   if (!i8) {
   18574           0 :    i11 = 13;
   18575           0 :    continue;
   18576           0 :   }
   18577           0 :   HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
   18578           0 :   i11 = 13;
   18579           0 :  }
   18580           0 :  if ((i11 | 0) == 21) {
   18581           0 :   _lexerror(i3, (i1 | 0) != 0 ? 12512 : 12536, 286);
   18582           0 :  } else if ((i11 | 0) == 23) {
   18583           0 :   i15 = HEAP32[i3 >> 2] | 0;
   18584           0 :   i13 = HEAP32[i4 >> 2] | 0;
   18585           0 :   i14 = i13 + 4 | 0;
   18586           0 :   i16 = HEAP32[i14 >> 2] | 0;
   18587           0 :   i11 = i13 + 8 | 0;
   18588           0 :   i12 = HEAP32[i11 >> 2] | 0;
   18589           0 :   do {
   18590           0 :    if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) {
   18591           0 :     if (i12 >>> 0 > 2147483645) {
   18592           0 :      _lexerror(i3, 12368, 0);
   18593           0 :     }
   18594           0 :     i17 = i12 << 1;
   18595           0 :     i16 = HEAP32[i10 >> 2] | 0;
   18596           0 :     if ((i17 | 0) == -2) {
   18597           0 :      _luaM_toobig(i16);
   18598           0 :     } else {
   18599           0 :      i6 = _luaM_realloc_(i16, HEAP32[i13 >> 2] | 0, i12, i17) | 0;
   18600           0 :      HEAP32[i13 >> 2] = i6;
   18601           0 :      HEAP32[i11 >> 2] = i17;
   18602           0 :      i7 = HEAP32[i14 >> 2] | 0;
   18603           0 :      break;
   18604           0 :     }
   18605           0 :    } else {
   18606           0 :     i7 = i16;
   18607           0 :     i6 = HEAP32[i13 >> 2] | 0;
   18608           0 :    }
   18609           0 :   } while (0);
   18610           0 :   HEAP32[i14 >> 2] = i7 + 1;
   18611           0 :   HEAP8[i6 + i7 | 0] = i15;
   18612           0 :   i6 = HEAP32[i9 >> 2] | 0;
   18613           0 :   i18 = HEAP32[i6 >> 2] | 0;
   18614           0 :   HEAP32[i6 >> 2] = i18 + -1;
   18615           0 :   if ((i18 | 0) == 0) {
   18616           0 :    i6 = _luaZ_fill(i6) | 0;
   18617           0 :   } else {
   18618           0 :    i18 = i6 + 4 | 0;
   18619           0 :    i6 = HEAP32[i18 >> 2] | 0;
   18620           0 :    HEAP32[i18 >> 2] = i6 + 1;
   18621           0 :    i6 = HEAPU8[i6] | 0;
   18622           0 :   }
   18623           0 :   HEAP32[i3 >> 2] = i6;
   18624           0 :   if (i8) {
   18625           0 :    STACKTOP = i2;
   18626           0 :    return;
   18627           0 :   }
   18628           0 :   i4 = HEAP32[i4 >> 2] | 0;
   18629           0 :   i5 = i5 + 2 | 0;
   18630           0 :   i6 = HEAP32[i10 >> 2] | 0;
   18631           0 :   i5 = _luaS_newlstr(i6, (HEAP32[i4 >> 2] | 0) + i5 | 0, (HEAP32[i4 + 4 >> 2] | 0) - (i5 << 1) | 0) | 0;
   18632           0 :   i4 = i6 + 8 | 0;
   18633           0 :   i7 = HEAP32[i4 >> 2] | 0;
   18634           0 :   HEAP32[i4 >> 2] = i7 + 16;
   18635           0 :   HEAP32[i7 >> 2] = i5;
   18636           0 :   HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
   18637           0 :   i7 = _luaH_set(i6, HEAP32[(HEAP32[i3 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i4 >> 2] | 0) + -16 | 0) | 0;
   18638           0 :   i3 = i7 + 8 | 0;
   18639           0 :   if ((HEAP32[i3 >> 2] | 0) == 0 ? (HEAP32[i7 >> 2] = 1, HEAP32[i3 >> 2] = 1, (HEAP32[(HEAP32[i6 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
   18640           0 :    _luaC_step(i6);
   18641           0 :   }
   18642           0 :   HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16;
   18643           0 :   HEAP32[i1 >> 2] = i5;
   18644           0 :   STACKTOP = i2;
   18645           0 :   return;
   18646           0 :  } else if ((i11 | 0) == 37) {
   18647           0 :   _lexerror(i3, 12368, 0);
   18648           0 :  } else if ((i11 | 0) == 39) {
   18649           0 :   _luaM_toobig(i10);
   18650           0 :  } else if ((i11 | 0) == 46) {
   18651           0 :   _lexerror(i3, 12368, 0);
   18652           0 :  } else if ((i11 | 0) == 48) {
   18653           0 :   _luaM_toobig(i18);
   18654           0 :  }
   18655           1 : }
   18656          81 : function _try_realloc_chunk(i1, i3) {
   18657          81 :  i1 = i1 | 0;
   18658          81 :  i3 = i3 | 0;
   18659          81 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
   18660          81 :  i2 = STACKTOP;
   18661          81 :  i4 = i1 + 4 | 0;
   18662          81 :  i6 = HEAP32[i4 >> 2] | 0;
   18663          81 :  i8 = i6 & -8;
   18664          81 :  i5 = i1 + i8 | 0;
   18665          81 :  i10 = HEAP32[12928 >> 2] | 0;
   18666          81 :  if (i1 >>> 0 < i10 >>> 0) {
   18667          81 :   _abort();
   18668          81 :  }
   18669          81 :  i12 = i6 & 3;
   18670          81 :  if (!((i12 | 0) != 1 & i1 >>> 0 < i5 >>> 0)) {
   18671          81 :   _abort();
   18672          81 :  }
   18673          81 :  i7 = i1 + (i8 | 4) | 0;
   18674          81 :  i13 = HEAP32[i7 >> 2] | 0;
   18675          81 :  if ((i13 & 1 | 0) == 0) {
   18676          81 :   _abort();
   18677          81 :  }
   18678          81 :  if ((i12 | 0) == 0) {
   18679          81 :   if (i3 >>> 0 < 256) {
   18680          81 :    i15 = 0;
   18681          81 :    STACKTOP = i2;
   18682          81 :    return i15 | 0;
   18683          81 :   }
   18684          81 :   if (!(i8 >>> 0 < (i3 + 4 | 0) >>> 0) ? !((i8 - i3 | 0) >>> 0 > HEAP32[13392 >> 2] << 1 >>> 0) : 0) {
   18685          81 :    i15 = i1;
   18686          81 :    STACKTOP = i2;
   18687          81 :    return i15 | 0;
   18688          81 :   }
   18689          81 :   i15 = 0;
   18690          81 :   STACKTOP = i2;
   18691          81 :   return i15 | 0;
   18692          81 :  }
   18693          81 :  if (!(i8 >>> 0 < i3 >>> 0)) {
   18694          81 :   i5 = i8 - i3 | 0;
   18695          81 :   if (!(i5 >>> 0 > 15)) {
   18696          81 :    i15 = i1;
   18697          81 :    STACKTOP = i2;
   18698          81 :    return i15 | 0;
   18699          81 :   }
   18700          81 :   HEAP32[i4 >> 2] = i6 & 1 | i3 | 2;
   18701          81 :   HEAP32[i1 + (i3 + 4) >> 2] = i5 | 3;
   18702          81 :   HEAP32[i7 >> 2] = HEAP32[i7 >> 2] | 1;
   18703          81 :   _dispose_chunk(i1 + i3 | 0, i5);
   18704          81 :   i15 = i1;
   18705          81 :   STACKTOP = i2;
   18706          81 :   return i15 | 0;
   18707          81 :  }
   18708          81 :  if ((i5 | 0) == (HEAP32[12936 >> 2] | 0)) {
   18709          81 :   i5 = (HEAP32[12924 >> 2] | 0) + i8 | 0;
   18710          81 :   if (!(i5 >>> 0 > i3 >>> 0)) {
   18711          81 :    i15 = 0;
   18712          81 :    STACKTOP = i2;
   18713          81 :    return i15 | 0;
   18714          81 :   }
   18715          81 :   i15 = i5 - i3 | 0;
   18716          81 :   HEAP32[i4 >> 2] = i6 & 1 | i3 | 2;
   18717          81 :   HEAP32[i1 + (i3 + 4) >> 2] = i15 | 1;
   18718          81 :   HEAP32[12936 >> 2] = i1 + i3;
   18719          81 :   HEAP32[12924 >> 2] = i15;
   18720          81 :   i15 = i1;
   18721          81 :   STACKTOP = i2;
   18722          81 :   return i15 | 0;
   18723          81 :  }
   18724          81 :  if ((i5 | 0) == (HEAP32[12932 >> 2] | 0)) {
   18725          81 :   i7 = (HEAP32[12920 >> 2] | 0) + i8 | 0;
   18726          81 :   if (i7 >>> 0 < i3 >>> 0) {
   18727          81 :    i15 = 0;
   18728          81 :    STACKTOP = i2;
   18729          81 :    return i15 | 0;
   18730          81 :   }
   18731          81 :   i5 = i7 - i3 | 0;
   18732          81 :   if (i5 >>> 0 > 15) {
   18733          81 :    HEAP32[i4 >> 2] = i6 & 1 | i3 | 2;
   18734          81 :    HEAP32[i1 + (i3 + 4) >> 2] = i5 | 1;
   18735          81 :    HEAP32[i1 + i7 >> 2] = i5;
   18736          81 :    i15 = i1 + (i7 + 4) | 0;
   18737          81 :    HEAP32[i15 >> 2] = HEAP32[i15 >> 2] & -2;
   18738          81 :    i3 = i1 + i3 | 0;
   18739          81 :   } else {
   18740          81 :    HEAP32[i4 >> 2] = i6 & 1 | i7 | 2;
   18741          81 :    i3 = i1 + (i7 + 4) | 0;
   18742          81 :    HEAP32[i3 >> 2] = HEAP32[i3 >> 2] | 1;
   18743          81 :    i3 = 0;
   18744          81 :    i5 = 0;
   18745          81 :   }
   18746          81 :   HEAP32[12920 >> 2] = i5;
   18747          81 :   HEAP32[12932 >> 2] = i3;
   18748          81 :   i15 = i1;
   18749          81 :   STACKTOP = i2;
   18750          81 :   return i15 | 0;
   18751          81 :  }
   18752          81 :  if ((i13 & 2 | 0) != 0) {
   18753          81 :   i15 = 0;
   18754          81 :   STACKTOP = i2;
   18755          81 :   return i15 | 0;
   18756          81 :  }
   18757          81 :  i7 = (i13 & -8) + i8 | 0;
   18758          81 :  if (i7 >>> 0 < i3 >>> 0) {
   18759          81 :   i15 = 0;
   18760          81 :   STACKTOP = i2;
   18761          81 :   return i15 | 0;
   18762          81 :  }
   18763          81 :  i6 = i7 - i3 | 0;
   18764          81 :  i12 = i13 >>> 3;
   18765          81 :  do {
   18766          81 :   if (!(i13 >>> 0 < 256)) {
   18767          81 :    i11 = HEAP32[i1 + (i8 + 24) >> 2] | 0;
   18768          81 :    i13 = HEAP32[i1 + (i8 + 12) >> 2] | 0;
   18769          81 :    do {
   18770          81 :     if ((i13 | 0) == (i5 | 0)) {
   18771          81 :      i13 = i1 + (i8 + 20) | 0;
   18772          81 :      i12 = HEAP32[i13 >> 2] | 0;
   18773          81 :      if ((i12 | 0) == 0) {
   18774          81 :       i13 = i1 + (i8 + 16) | 0;
   18775          81 :       i12 = HEAP32[i13 >> 2] | 0;
   18776          81 :       if ((i12 | 0) == 0) {
   18777          81 :        i9 = 0;
   18778          81 :        break;
   18779          81 :       }
   18780          81 :      }
   18781          81 :      while (1) {
   18782          81 :       i15 = i12 + 20 | 0;
   18783          81 :       i14 = HEAP32[i15 >> 2] | 0;
   18784          81 :       if ((i14 | 0) != 0) {
   18785          81 :        i12 = i14;
   18786          81 :        i13 = i15;
   18787          81 :        continue;
   18788          81 :       }
   18789          81 :       i15 = i12 + 16 | 0;
   18790          81 :       i14 = HEAP32[i15 >> 2] | 0;
   18791          81 :       if ((i14 | 0) == 0) {
   18792          81 :        break;
   18793          81 :       } else {
   18794          81 :        i12 = i14;
   18795          81 :        i13 = i15;
   18796          81 :       }
   18797          81 :      }
   18798          81 :      if (i13 >>> 0 < i10 >>> 0) {
   18799          81 :       _abort();
   18800          81 :      } else {
   18801          81 :       HEAP32[i13 >> 2] = 0;
   18802          81 :       i9 = i12;
   18803          81 :       break;
   18804          81 :      }
   18805          81 :     } else {
   18806          81 :      i12 = HEAP32[i1 + (i8 + 8) >> 2] | 0;
   18807          81 :      if (i12 >>> 0 < i10 >>> 0) {
   18808          81 :       _abort();
   18809          81 :      }
   18810          81 :      i14 = i12 + 12 | 0;
   18811          81 :      if ((HEAP32[i14 >> 2] | 0) != (i5 | 0)) {
   18812          81 :       _abort();
   18813          81 :      }
   18814          81 :      i10 = i13 + 8 | 0;
   18815          81 :      if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
   18816          81 :       HEAP32[i14 >> 2] = i13;
   18817          81 :       HEAP32[i10 >> 2] = i12;
   18818          81 :       i9 = i13;
   18819          81 :       break;
   18820          81 :      } else {
   18821          81 :       _abort();
   18822          81 :      }
   18823          81 :     }
   18824          81 :    } while (0);
   18825          81 :    if ((i11 | 0) != 0) {
   18826          81 :     i10 = HEAP32[i1 + (i8 + 28) >> 2] | 0;
   18827          81 :     i12 = 13216 + (i10 << 2) | 0;
   18828          81 :     if ((i5 | 0) == (HEAP32[i12 >> 2] | 0)) {
   18829          81 :      HEAP32[i12 >> 2] = i9;
   18830          81 :      if ((i9 | 0) == 0) {
   18831          81 :       HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i10);
   18832          81 :       break;
   18833          81 :      }
   18834          81 :     } else {
   18835          81 :      if (i11 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   18836          81 :       _abort();
   18837          81 :      }
   18838          81 :      i10 = i11 + 16 | 0;
   18839          81 :      if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
   18840          81 :       HEAP32[i10 >> 2] = i9;
   18841          81 :      } else {
   18842          81 :       HEAP32[i11 + 20 >> 2] = i9;
   18843          81 :      }
   18844          81 :      if ((i9 | 0) == 0) {
   18845          81 :       break;
   18846          81 :      }
   18847          81 :     }
   18848          81 :     if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   18849          81 :      _abort();
   18850          81 :     }
   18851          81 :     HEAP32[i9 + 24 >> 2] = i11;
   18852          81 :     i5 = HEAP32[i1 + (i8 + 16) >> 2] | 0;
   18853          81 :     do {
   18854          81 :      if ((i5 | 0) != 0) {
   18855          81 :       if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   18856          81 :        _abort();
   18857          81 :       } else {
   18858          81 :        HEAP32[i9 + 16 >> 2] = i5;
   18859          81 :        HEAP32[i5 + 24 >> 2] = i9;
   18860          81 :        break;
   18861          81 :       }
   18862          81 :      }
   18863          81 :     } while (0);
   18864          81 :     i5 = HEAP32[i1 + (i8 + 20) >> 2] | 0;
   18865          81 :     if ((i5 | 0) != 0) {
   18866          81 :      if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
   18867          81 :       _abort();
   18868          81 :      } else {
   18869          81 :       HEAP32[i9 + 20 >> 2] = i5;
   18870          81 :       HEAP32[i5 + 24 >> 2] = i9;
   18871          81 :       break;
   18872          81 :      }
   18873          81 :     }
   18874          81 :    }
   18875          81 :   } else {
   18876          81 :    i9 = HEAP32[i1 + (i8 + 8) >> 2] | 0;
   18877          81 :    i8 = HEAP32[i1 + (i8 + 12) >> 2] | 0;
   18878          81 :    i13 = 12952 + (i12 << 1 << 2) | 0;
   18879          81 :    if ((i9 | 0) != (i13 | 0)) {
   18880          81 :     if (i9 >>> 0 < i10 >>> 0) {
   18881          81 :      _abort();
   18882          81 :     }
   18883          81 :     if ((HEAP32[i9 + 12 >> 2] | 0) != (i5 | 0)) {
   18884          81 :      _abort();
   18885          81 :     }
   18886          81 :    }
   18887          81 :    if ((i8 | 0) == (i9 | 0)) {
   18888          81 :     HEAP32[3228] = HEAP32[3228] & ~(1 << i12);
   18889          81 :     break;
   18890          81 :    }
   18891          81 :    if ((i8 | 0) != (i13 | 0)) {
   18892          81 :     if (i8 >>> 0 < i10 >>> 0) {
   18893          81 :      _abort();
   18894          81 :     }
   18895          81 :     i10 = i8 + 8 | 0;
   18896          81 :     if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
   18897          81 :      i11 = i10;
   18898          81 :     } else {
   18899          81 :      _abort();
   18900          81 :     }
   18901          81 :    } else {
   18902          81 :     i11 = i8 + 8 | 0;
   18903          81 :    }
   18904          81 :    HEAP32[i9 + 12 >> 2] = i8;
   18905          81 :    HEAP32[i11 >> 2] = i9;
   18906          81 :   }
   18907          81 :  } while (0);
   18908          81 :  if (i6 >>> 0 < 16) {
   18909          81 :   HEAP32[i4 >> 2] = i7 | HEAP32[i4 >> 2] & 1 | 2;
   18910          81 :   i15 = i1 + (i7 | 4) | 0;
   18911          81 :   HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1;
   18912          81 :   i15 = i1;
   18913          81 :   STACKTOP = i2;
   18914          81 :   return i15 | 0;
   18915          81 :  } else {
   18916          81 :   HEAP32[i4 >> 2] = HEAP32[i4 >> 2] & 1 | i3 | 2;
   18917          81 :   HEAP32[i1 + (i3 + 4) >> 2] = i6 | 3;
   18918          81 :   i15 = i1 + (i7 | 4) | 0;
   18919          81 :   HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1;
   18920          81 :   _dispose_chunk(i1 + i3 | 0, i6);
   18921          81 :   i15 = i1;
   18922          81 :   STACKTOP = i2;
   18923          81 :   return i15 | 0;
   18924          81 :  }
   18925          81 :  return 0;
   18926          81 : }
   18927          23 : function _luaK_posfix(i3, i16, i1, i4, i14) {
   18928          23 :  i3 = i3 | 0;
   18929          23 :  i16 = i16 | 0;
   18930          23 :  i1 = i1 | 0;
   18931          23 :  i4 = i4 | 0;
   18932          23 :  i14 = i14 | 0;
   18933          23 :  var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i15 = 0;
   18934          23 :  i2 = STACKTOP;
   18935          23 :  switch (i16 | 0) {
   18936          23 :  case 14:
   18937          23 :   {
   18938          23 :    _luaK_dischargevars(i3, i4);
   18939          23 :    i6 = i4 + 16 | 0;
   18940          23 :    i5 = HEAP32[i1 + 16 >> 2] | 0;
   18941          23 :    do {
   18942          23 :     if (!((i5 | 0) == -1)) {
   18943          23 :      i9 = HEAP32[i6 >> 2] | 0;
   18944          23 :      if ((i9 | 0) == -1) {
   18945          23 :       HEAP32[i6 >> 2] = i5;
   18946          23 :       break;
   18947          23 :      }
   18948          23 :      i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
   18949          23 :      while (1) {
   18950          23 :       i6 = i7 + (i9 << 2) | 0;
   18951          23 :       i8 = HEAP32[i6 >> 2] | 0;
   18952          23 :       i10 = (i8 >>> 14) + -131071 | 0;
   18953          23 :       if ((i10 | 0) == -1) {
   18954          23 :        break;
   18955          23 :       }
   18956          23 :       i10 = i9 + 1 + i10 | 0;
   18957          23 :       if ((i10 | 0) == -1) {
   18958          23 :        break;
   18959          23 :       } else {
   18960          23 :        i9 = i10;
   18961          23 :       }
   18962          23 :      }
   18963          23 :      i5 = i5 + ~i9 | 0;
   18964          23 :      if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) {
   18965          23 :       _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10624);
   18966          23 :      } else {
   18967          23 :       HEAP32[i6 >> 2] = (i5 << 14) + 2147467264 | i8 & 16383;
   18968          23 :       break;
   18969          23 :      }
   18970          23 :     }
   18971          23 :    } while (0);
   18972          23 :    HEAP32[i1 + 0 >> 2] = HEAP32[i4 + 0 >> 2];
   18973          23 :    HEAP32[i1 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
   18974          23 :    HEAP32[i1 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
   18975          23 :    HEAP32[i1 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
   18976          23 :    HEAP32[i1 + 16 >> 2] = HEAP32[i4 + 16 >> 2];
   18977          23 :    HEAP32[i1 + 20 >> 2] = HEAP32[i4 + 20 >> 2];
   18978          23 :    STACKTOP = i2;
   18979          23 :    return;
   18980          23 :   }
   18981          23 :  case 13:
   18982          23 :   {
   18983          23 :    _luaK_dischargevars(i3, i4);
   18984          23 :    i6 = i4 + 20 | 0;
   18985          23 :    i5 = HEAP32[i1 + 20 >> 2] | 0;
   18986          23 :    do {
   18987          23 :     if (!((i5 | 0) == -1)) {
   18988          23 :      i9 = HEAP32[i6 >> 2] | 0;
   18989          23 :      if ((i9 | 0) == -1) {
   18990          23 :       HEAP32[i6 >> 2] = i5;
   18991          23 :       break;
   18992          23 :      }
   18993          23 :      i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
   18994          23 :      while (1) {
   18995          23 :       i8 = i7 + (i9 << 2) | 0;
   18996          23 :       i6 = HEAP32[i8 >> 2] | 0;
   18997          23 :       i10 = (i6 >>> 14) + -131071 | 0;
   18998          23 :       if ((i10 | 0) == -1) {
   18999          23 :        break;
   19000          23 :       }
   19001          23 :       i10 = i9 + 1 + i10 | 0;
   19002          23 :       if ((i10 | 0) == -1) {
   19003          23 :        break;
   19004          23 :       } else {
   19005          23 :        i9 = i10;
   19006          23 :       }
   19007          23 :      }
   19008          23 :      i5 = i5 + ~i9 | 0;
   19009          23 :      if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) {
   19010          23 :       _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10624);
   19011          23 :      } else {
   19012          23 :       HEAP32[i8 >> 2] = (i5 << 14) + 2147467264 | i6 & 16383;
   19013          23 :       break;
   19014          23 :      }
   19015          23 :     }
   19016          23 :    } while (0);
   19017          23 :    HEAP32[i1 + 0 >> 2] = HEAP32[i4 + 0 >> 2];
   19018          23 :    HEAP32[i1 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
   19019          23 :    HEAP32[i1 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
   19020          23 :    HEAP32[i1 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
   19021          23 :    HEAP32[i1 + 16 >> 2] = HEAP32[i4 + 16 >> 2];
   19022          23 :    HEAP32[i1 + 20 >> 2] = HEAP32[i4 + 20 >> 2];
   19023          23 :    STACKTOP = i2;
   19024          23 :    return;
   19025          23 :   }
   19026          23 :  case 6:
   19027          23 :   {
   19028          23 :    i12 = i4 + 16 | 0;
   19029          23 :    i13 = i4 + 20 | 0;
   19030          23 :    i16 = (HEAP32[i12 >> 2] | 0) == (HEAP32[i13 >> 2] | 0);
   19031          23 :    _luaK_dischargevars(i3, i4);
   19032          23 :    do {
   19033          23 :     if (!i16) {
   19034          23 :      if ((HEAP32[i4 >> 2] | 0) == 6) {
   19035          23 :       i10 = HEAP32[i4 + 8 >> 2] | 0;
   19036          23 :       if ((HEAP32[i12 >> 2] | 0) == (HEAP32[i13 >> 2] | 0)) {
   19037          23 :        break;
   19038          23 :       }
   19039          23 :       if ((i10 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) {
   19040          23 :        _exp2reg(i3, i4, i10);
   19041          23 :        break;
   19042          23 :       }
   19043          23 :      }
   19044          23 :      _luaK_exp2nextreg(i3, i4);
   19045          23 :     }
   19046          23 :    } while (0);
   19047          23 :    if ((HEAP32[i4 >> 2] | 0) == 11 ? (i5 = i4 + 8 | 0, i7 = HEAP32[i5 >> 2] | 0, i8 = (HEAP32[i3 >> 2] | 0) + 12 | 0, i9 = HEAP32[i8 >> 2] | 0, i6 = HEAP32[i9 + (i7 << 2) >> 2] | 0, (i6 & 63 | 0) == 22) : 0) {
   19048          23 :     i4 = i1 + 8 | 0;
   19049          23 :     if (((HEAP32[i1 >> 2] | 0) == 6 ? (i11 = HEAP32[i4 >> 2] | 0, (i11 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i11 | 0) : 0) {
   19050          23 :      i6 = i3 + 48 | 0;
   19051          23 :      HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24;
   19052          23 :      i6 = HEAP32[i5 >> 2] | 0;
   19053          23 :      i16 = HEAP32[i8 >> 2] | 0;
   19054          23 :      i9 = i16;
   19055          23 :      i7 = i6;
   19056          23 :      i6 = HEAP32[i16 + (i6 << 2) >> 2] | 0;
   19057          23 :     }
   19058          23 :     HEAP32[i9 + (i7 << 2) >> 2] = HEAP32[i4 >> 2] << 23 | i6 & 8388607;
   19059          23 :     HEAP32[i1 >> 2] = 11;
   19060          23 :     HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
   19061          23 :     STACKTOP = i2;
   19062          23 :     return;
   19063          23 :    }
   19064          23 :    _luaK_exp2nextreg(i3, i4);
   19065          23 :    _codearith(i3, 22, i1, i4, i14);
   19066          23 :    STACKTOP = i2;
   19067          23 :    return;
   19068          23 :   }
   19069          23 :  case 9:
   19070          23 :  case 8:
   19071          23 :  case 7:
   19072          23 :   {
   19073          23 :    i7 = i16 + 17 | 0;
   19074          23 :    i6 = _luaK_exp2RK(i3, i1) | 0;
   19075          23 :    i5 = _luaK_exp2RK(i3, i4) | 0;
   19076          23 :    if (((HEAP32[i4 >> 2] | 0) == 6 ? (i15 = HEAP32[i4 + 8 >> 2] | 0, (i15 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i15 | 0) : 0) {
   19077          23 :     i16 = i3 + 48 | 0;
   19078          23 :     HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
   19079          23 :    }
   19080          23 :    i4 = i1 + 8 | 0;
   19081          23 :    if (((HEAP32[i1 >> 2] | 0) == 6 ? (i10 = HEAP32[i4 >> 2] | 0, (i10 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i10 | 0) : 0) {
   19082          23 :     i16 = i3 + 48 | 0;
   19083          23 :     HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
   19084          23 :    }
   19085          23 :    HEAP32[i4 >> 2] = _condjump(i3, i7, 1, i6, i5) | 0;
   19086          23 :    HEAP32[i1 >> 2] = 10;
   19087          23 :    STACKTOP = i2;
   19088          23 :    return;
   19089          23 :   }
   19090          23 :  case 12:
   19091          23 :  case 11:
   19092          23 :  case 10:
   19093          23 :   {
   19094          23 :    i7 = i16 + 14 | 0;
   19095          23 :    i6 = _luaK_exp2RK(i3, i1) | 0;
   19096          23 :    i5 = _luaK_exp2RK(i3, i4) | 0;
   19097          23 :    if (((HEAP32[i4 >> 2] | 0) == 6 ? (i13 = HEAP32[i4 + 8 >> 2] | 0, (i13 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i13 | 0) : 0) {
   19098          23 :     i16 = i3 + 48 | 0;
   19099          23 :     HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
   19100          23 :    }
   19101          23 :    i4 = i1 + 8 | 0;
   19102          23 :    if (((HEAP32[i1 >> 2] | 0) == 6 ? (i12 = HEAP32[i4 >> 2] | 0, (i12 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i12 | 0) : 0) {
   19103          23 :     i16 = i3 + 48 | 0;
   19104          23 :     HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
   19105          23 :    }
   19106          23 :    i8 = (i7 | 0) == 24;
   19107          23 :    HEAP32[i4 >> 2] = _condjump(i3, i7, i8 & 1 ^ 1, i8 ? i6 : i5, i8 ? i5 : i6) | 0;
   19108          23 :    HEAP32[i1 >> 2] = 10;
   19109          23 :    STACKTOP = i2;
   19110          23 :    return;
   19111          23 :   }
   19112          23 :  case 5:
   19113          23 :  case 4:
   19114          23 :  case 3:
   19115          23 :  case 2:
   19116          23 :  case 1:
   19117          23 :  case 0:
   19118          23 :   {
   19119          23 :    _codearith(i3, i16 + 13 | 0, i1, i4, i14);
   19120          23 :    STACKTOP = i2;
   19121          23 :    return;
   19122          23 :   }
   19123          23 :  default:
   19124          23 :   {
   19125          23 :    STACKTOP = i2;
   19126          23 :    return;
   19127          23 :   }
   19128          23 :  }
   19129          23 : }
   19130           2 : function _body(i1, i4, i13, i5) {
   19131           2 :  i1 = i1 | 0;
   19132           2 :  i4 = i4 | 0;
   19133           2 :  i13 = i13 | 0;
   19134           2 :  i5 = i5 | 0;
   19135           2 :  var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0;
   19136           2 :  i6 = STACKTOP;
   19137           2 :  STACKTOP = STACKTOP + 64 | 0;
   19138           2 :  i3 = i6 + 12 | 0;
   19139           2 :  i14 = i6;
   19140           2 :  i2 = i1 + 48 | 0;
   19141           2 :  i19 = HEAP32[i2 >> 2] | 0;
   19142           2 :  i18 = i1 + 52 | 0;
   19143           2 :  i17 = HEAP32[i18 >> 2] | 0;
   19144           2 :  i16 = HEAP32[i19 >> 2] | 0;
   19145           2 :  i19 = i19 + 36 | 0;
   19146           2 :  i23 = i16 + 56 | 0;
   19147           2 :  i24 = HEAP32[i23 >> 2] | 0;
   19148           2 :  i15 = i16 + 16 | 0;
   19149           2 :  if (((HEAP32[i19 >> 2] | 0) >= (i24 | 0) ? (i21 = _luaM_growaux_(i17, HEAP32[i15 >> 2] | 0, i23, 4, 262143, 6512) | 0, HEAP32[i15 >> 2] = i21, i20 = HEAP32[i23 >> 2] | 0, (i24 | 0) < (i20 | 0)) : 0) ? (i22 = i24 + 1 | 0, HEAP32[i21 + (i24 << 2) >> 2] = 0, (i22 | 0) < (i20 | 0)) : 0) {
   19150           2 :   while (1) {
   19151           2 :    i21 = i22 + 1 | 0;
   19152           2 :    HEAP32[(HEAP32[i15 >> 2] | 0) + (i22 << 2) >> 2] = 0;
   19153           2 :    if ((i21 | 0) == (i20 | 0)) {
   19154           2 :     break;
   19155           2 :    } else {
   19156           2 :     i22 = i21;
   19157           2 :    }
   19158           2 :   }
   19159           2 :  }
   19160           2 :  i20 = _luaF_newproto(i17) | 0;
   19161           2 :  i24 = HEAP32[i19 >> 2] | 0;
   19162           2 :  HEAP32[i19 >> 2] = i24 + 1;
   19163           2 :  HEAP32[(HEAP32[i15 >> 2] | 0) + (i24 << 2) >> 2] = i20;
   19164           2 :  if (!((HEAP8[i20 + 5 | 0] & 3) == 0) ? !((HEAP8[i16 + 5 | 0] & 4) == 0) : 0) {
   19165           2 :   _luaC_barrier_(i17, i16, i20);
   19166           2 :  }
   19167           2 :  HEAP32[i3 >> 2] = i20;
   19168           2 :  HEAP32[i20 + 64 >> 2] = i5;
   19169           2 :  i16 = HEAP32[i18 >> 2] | 0;
   19170           2 :  HEAP32[i3 + 8 >> 2] = HEAP32[i2 >> 2];
   19171           2 :  i17 = i3 + 12 | 0;
   19172           2 :  HEAP32[i17 >> 2] = i1;
   19173           2 :  HEAP32[i2 >> 2] = i3;
   19174           2 :  HEAP32[i3 + 20 >> 2] = 0;
   19175           2 :  HEAP32[i3 + 24 >> 2] = 0;
   19176           2 :  HEAP32[i3 + 28 >> 2] = -1;
   19177           2 :  HEAP32[i3 + 32 >> 2] = 0;
   19178           2 :  HEAP32[i3 + 36 >> 2] = 0;
   19179           2 :  i22 = i3 + 44 | 0;
   19180           2 :  i15 = i1 + 64 | 0;
   19181           2 :  HEAP32[i22 + 0 >> 2] = 0;
   19182           2 :  HEAP8[i22 + 4 | 0] = 0;
   19183           2 :  HEAP32[i3 + 40 >> 2] = HEAP32[(HEAP32[i15 >> 2] | 0) + 4 >> 2];
   19184           2 :  i15 = i3 + 16 | 0;
   19185           2 :  HEAP32[i15 >> 2] = 0;
   19186           2 :  HEAP32[i20 + 36 >> 2] = HEAP32[i1 + 68 >> 2];
   19187           2 :  HEAP8[i20 + 78 | 0] = 2;
   19188           2 :  i22 = _luaH_new(i16) | 0;
   19189           2 :  HEAP32[i3 + 4 >> 2] = i22;
   19190           2 :  i23 = i16 + 8 | 0;
   19191           2 :  i24 = HEAP32[i23 >> 2] | 0;
   19192           2 :  HEAP32[i24 >> 2] = i22;
   19193           2 :  HEAP32[i24 + 8 >> 2] = 69;
   19194           2 :  i24 = (HEAP32[i23 >> 2] | 0) + 16 | 0;
   19195           2 :  HEAP32[i23 >> 2] = i24;
   19196           2 :  if (((HEAP32[i16 + 24 >> 2] | 0) - i24 | 0) < 16) {
   19197           2 :   _luaD_growstack(i16, 0);
   19198           2 :  }
   19199           2 :  HEAP8[i14 + 10 | 0] = 0;
   19200           2 :  HEAP8[i14 + 8 | 0] = HEAP8[i3 + 46 | 0] | 0;
   19201           2 :  i24 = HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] | 0;
   19202           2 :  HEAP16[i14 + 4 >> 1] = HEAP32[i24 + 28 >> 2];
   19203           2 :  HEAP16[i14 + 6 >> 1] = HEAP32[i24 + 16 >> 2];
   19204           2 :  HEAP8[i14 + 9 | 0] = 0;
   19205           2 :  HEAP32[i14 >> 2] = HEAP32[i15 >> 2];
   19206           2 :  HEAP32[i15 >> 2] = i14;
   19207           2 :  i14 = i1 + 16 | 0;
   19208           2 :  if ((HEAP32[i14 >> 2] | 0) != 40) {
   19209           2 :   _error_expected(i1, 40);
   19210           2 :  }
   19211           2 :  _luaX_next(i1);
   19212           2 :  if ((i13 | 0) != 0) {
   19213           2 :   _new_localvar(i1, _luaX_newstring(i1, 6456, 4) | 0);
   19214           2 :   i24 = HEAP32[i2 >> 2] | 0;
   19215           2 :   i22 = i24 + 46 | 0;
   19216           2 :   i23 = (HEAPU8[i22] | 0) + 1 | 0;
   19217           2 :   HEAP8[i22] = i23;
   19218           2 :   HEAP32[(HEAP32[(HEAP32[i24 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i24 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((i23 & 255) + -1 + (HEAP32[i24 + 40 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i24 + 20 >> 2];
   19219           2 :  }
   19220           2 :  i13 = HEAP32[i2 >> 2] | 0;
   19221           2 :  i15 = HEAP32[i13 >> 2] | 0;
   19222           2 :  i16 = i15 + 77 | 0;
   19223           2 :  HEAP8[i16] = 0;
   19224           2 :  i19 = HEAP32[i14 >> 2] | 0;
   19225           2 :  L20 : do {
   19226           2 :   if ((i19 | 0) != 41) {
   19227           2 :    i17 = i1 + 24 | 0;
   19228           2 :    i18 = 0;
   19229           2 :    while (1) {
   19230           2 :     if ((i19 | 0) == 280) {
   19231           2 :      i17 = 18;
   19232           2 :      break;
   19233           2 :     } else if ((i19 | 0) != 288) {
   19234           2 :      i17 = 19;
   19235           2 :      break;
   19236           2 :     }
   19237           2 :     i24 = HEAP32[i17 >> 2] | 0;
   19238           2 :     _luaX_next(i1);
   19239           2 :     _new_localvar(i1, i24);
   19240           2 :     i18 = i18 + 1 | 0;
   19241           2 :     if ((HEAP8[i16] | 0) != 0) {
   19242           2 :      i11 = i18;
   19243           2 :      break L20;
   19244           2 :     }
   19245           2 :     if ((HEAP32[i14 >> 2] | 0) != 44) {
   19246           2 :      i11 = i18;
   19247           2 :      break L20;
   19248           2 :     }
   19249           2 :     _luaX_next(i1);
   19250           2 :     i19 = HEAP32[i14 >> 2] | 0;
   19251           2 :    }
   19252           2 :    if ((i17 | 0) == 18) {
   19253           2 :     _luaX_next(i1);
   19254           2 :     HEAP8[i16] = 1;
   19255           2 :     i11 = i18;
   19256           2 :     break;
   19257           2 :    } else if ((i17 | 0) == 19) {
   19258           2 :     _luaX_syntaxerror(i1, 6464);
   19259           2 :    }
   19260           2 :   } else {
   19261           2 :    i11 = 0;
   19262           2 :   }
   19263           2 :  } while (0);
   19264           2 :  i18 = HEAP32[i2 >> 2] | 0;
   19265           2 :  i16 = i18 + 46 | 0;
   19266           2 :  i17 = (HEAPU8[i16] | 0) + i11 | 0;
   19267           2 :  HEAP8[i16] = i17;
   19268           2 :  if ((i11 | 0) != 0 ? (i8 = i18 + 20 | 0, i9 = i18 + 40 | 0, i7 = HEAP32[(HEAP32[i18 >> 2] | 0) + 24 >> 2] | 0, i10 = HEAP32[HEAP32[(HEAP32[i18 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i7 + ((HEAP16[i10 + ((i17 & 255) - i11 + (HEAP32[i9 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i8 >> 2], i12 = i11 + -1 | 0, (i12 | 0) != 0) : 0) {
   19269           2 :   do {
   19270           2 :    HEAP32[i7 + ((HEAP16[i10 + ((HEAPU8[i16] | 0) - i12 + (HEAP32[i9 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i8 >> 2];
   19271           2 :    i12 = i12 + -1 | 0;
   19272           2 :   } while ((i12 | 0) != 0);
   19273           2 :  }
   19274           2 :  i24 = i13 + 46 | 0;
   19275           2 :  HEAP8[i15 + 76 | 0] = HEAP8[i24] | 0;
   19276           2 :  _luaK_reserveregs(i13, HEAPU8[i24] | 0);
   19277           2 :  if ((HEAP32[i14 >> 2] | 0) != 41) {
   19278           2 :   _error_expected(i1, 41);
   19279           2 :  }
   19280           2 :  _luaX_next(i1);
   19281           2 :  L39 : while (1) {
   19282           2 :   i7 = HEAP32[i14 >> 2] | 0;
   19283           2 :   switch (i7 | 0) {
   19284           2 :   case 277:
   19285           2 :   case 286:
   19286           2 :   case 262:
   19287           2 :   case 261:
   19288           2 :   case 260:
   19289           2 :    {
   19290           2 :     i17 = 30;
   19291           2 :     break L39;
   19292           2 :    }
   19293           2 :   default:
   19294           2 :    {}
   19295           2 :   }
   19296           2 :   _statement(i1);
   19297           2 :   if ((i7 | 0) == 274) {
   19298           2 :    i17 = 30;
   19299           2 :    break;
   19300           2 :   }
   19301           2 :  }
   19302           2 :  if ((i17 | 0) == 30) {
   19303           2 :   HEAP32[(HEAP32[i3 >> 2] | 0) + 68 >> 2] = HEAP32[i1 + 4 >> 2];
   19304           2 :   _check_match(i1, 262, 265, i5);
   19305           2 :   i24 = HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] | 0;
   19306           2 :   i23 = _luaK_codeABx(i24, 37, 0, (HEAP32[i24 + 36 >> 2] | 0) + -1 | 0) | 0;
   19307           2 :   HEAP32[i4 + 16 >> 2] = -1;
   19308           2 :   HEAP32[i4 + 20 >> 2] = -1;
   19309           2 :   HEAP32[i4 >> 2] = 11;
   19310           2 :   HEAP32[i4 + 8 >> 2] = i23;
   19311           2 :   _luaK_exp2nextreg(i24, i4);
   19312           2 :   _close_func(i1);
   19313           2 :   STACKTOP = i6;
   19314           2 :   return;
   19315           2 :  }
   19316           2 : }
   19317         563 : function _luaH_newkey(i3, i2, i1) {
   19318         563 :  i3 = i3 | 0;
   19319         563 :  i2 = i2 | 0;
   19320         563 :  i1 = i1 | 0;
   19321         563 :  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0;
   19322         563 :  i4 = STACKTOP;
   19323         563 :  STACKTOP = STACKTOP + 144 | 0;
   19324         563 :  i8 = i4 + 8 | 0;
   19325         563 :  i10 = i4;
   19326         563 :  i5 = i4 + 16 | 0;
   19327         563 :  i6 = i1 + 8 | 0;
   19328         563 :  i11 = HEAP32[i6 >> 2] | 0;
   19329         563 :  if ((i11 | 0) == 0) {
   19330         563 :   _luaG_runerror(i3, 7968, i8);
   19331         563 :  } else if ((i11 | 0) == 3) {
   19332         563 :   i15 = 3;
   19333         563 :  }
   19334         563 :  if ((i15 | 0) == 3 ? (d21 = +HEAPF64[i1 >> 3], !(d21 == d21 & 0.0 == 0.0)) : 0) {
   19335         563 :   _luaG_runerror(i3, 7992, i8);
   19336         563 :  }
   19337         563 :  i13 = _mainposition(i2, i1) | 0;
   19338         563 :  i14 = i13 + 8 | 0;
   19339         563 :  do {
   19340         563 :   if ((HEAP32[i14 >> 2] | 0) != 0 | (i13 | 0) == 8016) {
   19341         563 :    i18 = i2 + 20 | 0;
   19342         563 :    i11 = i2 + 16 | 0;
   19343         563 :    i17 = HEAP32[i11 >> 2] | 0;
   19344         563 :    i16 = HEAP32[i18 >> 2] | 0;
   19345         563 :    while (1) {
   19346         563 :     if (!(i16 >>> 0 > i17 >>> 0)) {
   19347         563 :      break;
   19348         563 :     }
   19349         563 :     i12 = i16 + -32 | 0;
   19350         563 :     HEAP32[i18 >> 2] = i12;
   19351         563 :     if ((HEAP32[i16 + -8 >> 2] | 0) == 0) {
   19352         563 :      i15 = 37;
   19353         563 :      break;
   19354         563 :     } else {
   19355         563 :      i16 = i12;
   19356         563 :     }
   19357         563 :    }
   19358         563 :    if ((i15 | 0) == 37) {
   19359         563 :     i5 = _mainposition(i2, i13 + 16 | 0) | 0;
   19360         563 :     if ((i5 | 0) == (i13 | 0)) {
   19361         563 :      i20 = i13 + 28 | 0;
   19362         563 :      HEAP32[i16 + -4 >> 2] = HEAP32[i20 >> 2];
   19363         563 :      HEAP32[i20 >> 2] = i12;
   19364         563 :      break;
   19365         563 :     } else {
   19366         563 :      i7 = i5;
   19367         563 :     }
   19368         563 :     do {
   19369         563 :      i5 = i7 + 28 | 0;
   19370         563 :      i7 = HEAP32[i5 >> 2] | 0;
   19371         563 :     } while ((i7 | 0) != (i13 | 0));
   19372         563 :     HEAP32[i5 >> 2] = i12;
   19373         563 :     HEAP32[i12 + 0 >> 2] = HEAP32[i13 + 0 >> 2];
   19374         563 :     HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
   19375         563 :     HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
   19376         563 :     HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
   19377         563 :     HEAP32[i12 + 16 >> 2] = HEAP32[i13 + 16 >> 2];
   19378         563 :     HEAP32[i12 + 20 >> 2] = HEAP32[i13 + 20 >> 2];
   19379         563 :     HEAP32[i12 + 24 >> 2] = HEAP32[i13 + 24 >> 2];
   19380         563 :     HEAP32[i12 + 28 >> 2] = HEAP32[i13 + 28 >> 2];
   19381         563 :     HEAP32[i13 + 28 >> 2] = 0;
   19382         563 :     HEAP32[i14 >> 2] = 0;
   19383         563 :     i12 = i13;
   19384         563 :     break;
   19385         563 :    }
   19386         563 :    i13 = i5 + 0 | 0;
   19387         563 :    i12 = i13 + 124 | 0;
   19388         563 :    do {
   19389         563 :     HEAP32[i13 >> 2] = 0;
   19390         563 :     i13 = i13 + 4 | 0;
   19391         563 :    } while ((i13 | 0) < (i12 | 0));
   19392         563 :    i15 = i2 + 12 | 0;
   19393         563 :    i13 = HEAP32[i2 + 28 >> 2] | 0;
   19394         563 :    i12 = 0;
   19395         563 :    i20 = 1;
   19396         563 :    i16 = 0;
   19397         563 :    i14 = 1;
   19398         563 :    while (1) {
   19399         563 :     if ((i14 | 0) > (i13 | 0)) {
   19400         563 :      if ((i20 | 0) > (i13 | 0)) {
   19401         563 :       break;
   19402         563 :      } else {
   19403         563 :       i19 = i13;
   19404         563 :      }
   19405         563 :     } else {
   19406         563 :      i19 = i14;
   19407         563 :     }
   19408         563 :     if ((i20 | 0) > (i19 | 0)) {
   19409         563 :      i18 = i20;
   19410         563 :      i17 = 0;
   19411         563 :     } else {
   19412         563 :      i18 = HEAP32[i15 >> 2] | 0;
   19413         563 :      i17 = 0;
   19414         563 :      while (1) {
   19415         563 :       i17 = ((HEAP32[i18 + (i20 + -1 << 4) + 8 >> 2] | 0) != 0) + i17 | 0;
   19416         563 :       if ((i20 | 0) >= (i19 | 0)) {
   19417         563 :        break;
   19418         563 :       } else {
   19419         563 :        i20 = i20 + 1 | 0;
   19420         563 :       }
   19421         563 :      }
   19422         563 :      i18 = i19 + 1 | 0;
   19423         563 :     }
   19424         563 :     i20 = i5 + (i16 << 2) | 0;
   19425         563 :     HEAP32[i20 >> 2] = (HEAP32[i20 >> 2] | 0) + i17;
   19426         563 :     i12 = i17 + i12 | 0;
   19427         563 :     i16 = i16 + 1 | 0;
   19428         563 :     if ((i16 | 0) < 31) {
   19429         563 :      i20 = i18;
   19430         563 :      i14 = i14 << 1;
   19431         563 :     } else {
   19432         563 :      break;
   19433         563 :     }
   19434         563 :    }
   19435         563 :    i14 = 0;
   19436         563 :    i15 = 1 << (HEAPU8[i2 + 7 | 0] | 0);
   19437         563 :    i13 = 0;
   19438         563 :    L32 : while (1) {
   19439         563 :     i16 = i15;
   19440         563 :     while (1) {
   19441         563 :      i15 = i16 + -1 | 0;
   19442         563 :      if ((i16 | 0) == 0) {
   19443         563 :       break L32;
   19444         563 :      }
   19445         563 :      i16 = HEAP32[i11 >> 2] | 0;
   19446         563 :      if ((HEAP32[i16 + (i15 << 5) + 8 >> 2] | 0) == 0) {
   19447         563 :       i16 = i15;
   19448         563 :      } else {
   19449         563 :       break;
   19450         563 :      }
   19451         563 :     }
   19452         563 :     if (((HEAP32[i16 + (i15 << 5) + 24 >> 2] | 0) == 3 ? (d21 = +HEAPF64[i16 + (i15 << 5) + 16 >> 3], HEAPF64[i10 >> 3] = d21 + 6755399441055744.0, i9 = HEAP32[i10 >> 2] | 0, +(i9 | 0) == d21) : 0) ? (i9 + -1 | 0) >>> 0 < 1073741824 : 0) {
   19453         563 :      i16 = i5 + ((_luaO_ceillog2(i9) | 0) << 2) | 0;
   19454         563 :      HEAP32[i16 >> 2] = (HEAP32[i16 >> 2] | 0) + 1;
   19455         563 :      i16 = 1;
   19456         563 :     } else {
   19457         563 :      i16 = 0;
   19458         563 :     }
   19459         563 :     i14 = i16 + i14 | 0;
   19460         563 :     i13 = i13 + 1 | 0;
   19461         563 :    }
   19462         563 :    i9 = i14 + i12 | 0;
   19463         563 :    if (((HEAP32[i6 >> 2] | 0) == 3 ? (d21 = +HEAPF64[i1 >> 3], HEAPF64[i8 >> 3] = d21 + 6755399441055744.0, i7 = HEAP32[i8 >> 2] | 0, +(i7 | 0) == d21) : 0) ? (i7 + -1 | 0) >>> 0 < 1073741824 : 0) {
   19464         563 :     i6 = i5 + ((_luaO_ceillog2(i7) | 0) << 2) | 0;
   19465         563 :     HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 1;
   19466         563 :     i6 = 1;
   19467         563 :    } else {
   19468         563 :     i6 = 0;
   19469         563 :    }
   19470         563 :    i7 = i9 + i6 | 0;
   19471         563 :    L49 : do {
   19472         563 :     if ((i7 | 0) > 0) {
   19473         563 :      i14 = 0;
   19474         563 :      i10 = 0;
   19475         563 :      i6 = 0;
   19476         563 :      i8 = 0;
   19477         563 :      i11 = 0;
   19478         563 :      i9 = 1;
   19479         563 :      while (1) {
   19480         563 :       i15 = HEAP32[i5 + (i6 << 2) >> 2] | 0;
   19481         563 :       if ((i15 | 0) > 0) {
   19482         563 :        i15 = i15 + i10 | 0;
   19483         563 :        i14 = (i15 | 0) > (i14 | 0);
   19484         563 :        i10 = i15;
   19485         563 :        i8 = i14 ? i9 : i8;
   19486         563 :        i11 = i14 ? i15 : i11;
   19487         563 :       }
   19488         563 :       if ((i10 | 0) == (i7 | 0)) {
   19489         563 :        break L49;
   19490         563 :       }
   19491         563 :       i9 = i9 << 1;
   19492         563 :       i14 = (i9 | 0) / 2 | 0;
   19493         563 :       if ((i14 | 0) < (i7 | 0)) {
   19494         563 :        i6 = i6 + 1 | 0;
   19495         563 :       } else {
   19496         563 :        break;
   19497         563 :       }
   19498         563 :      }
   19499         563 :     } else {
   19500         563 :      i8 = 0;
   19501         563 :      i11 = 0;
   19502         563 :     }
   19503         563 :    } while (0);
   19504         563 :    _luaH_resize(i3, i2, i8, i12 + 1 + i13 - i11 | 0);
   19505         563 :    i5 = _luaH_get(i2, i1) | 0;
   19506         563 :    if ((i5 | 0) != 5192) {
   19507         563 :     i20 = i5;
   19508         563 :     STACKTOP = i4;
   19509         563 :     return i20 | 0;
   19510         563 :    }
   19511         563 :    i20 = _luaH_newkey(i3, i2, i1) | 0;
   19512         563 :    STACKTOP = i4;
   19513         563 :    return i20 | 0;
   19514         563 :   } else {
   19515         563 :    i12 = i13;
   19516         563 :   }
   19517         563 :  } while (0);
   19518         563 :  i18 = i1;
   19519         563 :  i19 = HEAP32[i18 + 4 >> 2] | 0;
   19520         563 :  i20 = i12 + 16 | 0;
   19521         563 :  HEAP32[i20 >> 2] = HEAP32[i18 >> 2];
   19522         563 :  HEAP32[i20 + 4 >> 2] = i19;
   19523         563 :  HEAP32[i12 + 24 >> 2] = HEAP32[i6 >> 2];
   19524         563 :  if (((HEAP32[i6 >> 2] & 64 | 0) != 0 ? !((HEAP8[(HEAP32[i1 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) ? !((HEAP8[i2 + 5 | 0] & 4) == 0) : 0) {
   19525         563 :   _luaC_barrierback_(i3, i2);
   19526         563 :  }
   19527         563 :  i20 = i12;
   19528         563 :  STACKTOP = i4;
   19529         563 :  return i20 | 0;
   19530         563 : }
   19531           1 : function _luaV_concat(i7, i10) {
   19532           1 :  i7 = i7 | 0;
   19533           1 :  i10 = i10 | 0;
   19534           1 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
   19535           1 :  i5 = STACKTOP;
   19536           1 :  STACKTOP = STACKTOP + 48 | 0;
   19537           1 :  i9 = i5;
   19538           1 :  i8 = i5 + 8 | 0;
   19539           1 :  i6 = i7 + 8 | 0;
   19540           1 :  i2 = i7 + 12 | 0;
   19541           1 :  i3 = i7 + 28 | 0;
   19542           1 :  i4 = i7 + 16 | 0;
   19543           1 :  i11 = HEAP32[i6 >> 2] | 0;
   19544           1 :  L1 : while (1) {
   19545           1 :   i14 = i11 + -32 | 0;
   19546           1 :   i12 = i11 + -24 | 0;
   19547           1 :   i17 = HEAP32[i12 >> 2] | 0;
   19548           1 :   i13 = i11 + -16 | 0;
   19549           1 :   do {
   19550           1 :    if ((i17 & 15 | 0) == 4 | (i17 | 0) == 3) {
   19551           1 :     i15 = i11 + -8 | 0;
   19552           1 :     i16 = HEAP32[i15 >> 2] | 0;
   19553           1 :     if ((i16 & 15 | 0) == 4) {
   19554           1 :      i16 = i13;
   19555           1 :     } else {
   19556           1 :      if ((i16 | 0) != 3) {
   19557           1 :       i1 = 7;
   19558           1 :       break;
   19559           1 :      }
   19560           1 :      HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i13 >> 3];
   19561           1 :      HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2];
   19562           1 :      HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
   19563           1 :      i16 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0;
   19564           1 :      HEAP32[i13 >> 2] = i16;
   19565           1 :      HEAP32[i15 >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64;
   19566           1 :      i16 = i13;
   19567           1 :      i17 = HEAP32[i12 >> 2] | 0;
   19568           1 :     }
   19569           1 :     i16 = HEAP32[(HEAP32[i16 >> 2] | 0) + 12 >> 2] | 0;
   19570           1 :     i18 = (i17 & 15 | 0) == 4;
   19571           1 :     if ((i16 | 0) == 0) {
   19572           1 :      if (i18) {
   19573           1 :       i12 = 2;
   19574           1 :       break;
   19575           1 :      }
   19576           1 :      if ((i17 | 0) != 3) {
   19577           1 :       i12 = 2;
   19578           1 :       break;
   19579           1 :      }
   19580           1 :      HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i14 >> 3];
   19581           1 :      HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2];
   19582           1 :      HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
   19583           1 :      i18 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0;
   19584           1 :      HEAP32[i14 >> 2] = i18;
   19585           1 :      HEAP32[i12 >> 2] = HEAPU8[i18 + 4 | 0] | 0 | 64;
   19586           1 :      i12 = 2;
   19587           1 :      break;
   19588           1 :     }
   19589           1 :     if (i18 ? (HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] | 0) == 0 : 0) {
   19590           1 :      i16 = i13;
   19591           1 :      i17 = HEAP32[i16 + 4 >> 2] | 0;
   19592           1 :      i18 = i14;
   19593           1 :      HEAP32[i18 >> 2] = HEAP32[i16 >> 2];
   19594           1 :      HEAP32[i18 + 4 >> 2] = i17;
   19595           1 :      HEAP32[i12 >> 2] = HEAP32[i15 >> 2];
   19596           1 :      i12 = 2;
   19597           1 :      break;
   19598           1 :     }
   19599           1 :     L19 : do {
   19600           1 :      if ((i10 | 0) > 1) {
   19601           1 :       i12 = 1;
   19602           1 :       do {
   19603           1 :        i15 = ~i12;
   19604           1 :        i14 = i11 + (i15 << 4) | 0;
   19605           1 :        i15 = i11 + (i15 << 4) + 8 | 0;
   19606           1 :        i13 = HEAP32[i15 >> 2] | 0;
   19607           1 :        if ((i13 & 15 | 0) != 4) {
   19608           1 :         if ((i13 | 0) != 3) {
   19609           1 :          break L19;
   19610           1 :         }
   19611           1 :         HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i14 >> 3];
   19612           1 :         HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2];
   19613           1 :         HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
   19614           1 :         i18 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0;
   19615           1 :         HEAP32[i14 >> 2] = i18;
   19616           1 :         HEAP32[i15 >> 2] = HEAPU8[i18 + 4 | 0] | 0 | 64;
   19617           1 :        }
   19618           1 :        i13 = HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] | 0;
   19619           1 :        if (!(i13 >>> 0 < (-3 - i16 | 0) >>> 0)) {
   19620           1 :         i1 = 24;
   19621           1 :         break L1;
   19622           1 :        }
   19623           1 :        i16 = i13 + i16 | 0;
   19624           1 :        i12 = i12 + 1 | 0;
   19625           1 :       } while ((i12 | 0) < (i10 | 0));
   19626           1 :      } else {
   19627           1 :       i12 = 1;
   19628           1 :      }
   19629           1 :     } while (0);
   19630           1 :     i14 = _luaZ_openspace(i7, (HEAP32[i2 >> 2] | 0) + 144 | 0, i16) | 0;
   19631           1 :     i15 = i12;
   19632           1 :     i13 = 0;
   19633           1 :     do {
   19634           1 :      i17 = HEAP32[i11 + (0 - i15 << 4) >> 2] | 0;
   19635           1 :      i18 = HEAP32[i17 + 12 >> 2] | 0;
   19636           1 :      _memcpy(i14 + i13 | 0, i17 + 16 | 0, i18 | 0) | 0;
   19637           1 :      i13 = i18 + i13 | 0;
   19638           1 :      i15 = i15 + -1 | 0;
   19639           1 :     } while ((i15 | 0) > 0);
   19640           1 :     i18 = 0 - i12 | 0;
   19641           1 :     i17 = _luaS_newlstr(i7, i14, i13) | 0;
   19642           1 :     HEAP32[i11 + (i18 << 4) >> 2] = i17;
   19643           1 :     HEAP32[i11 + (i18 << 4) + 8 >> 2] = HEAPU8[i17 + 4 | 0] | 0 | 64;
   19644           1 :    } else {
   19645           1 :     i1 = 7;
   19646           1 :    }
   19647           1 :   } while (0);
   19648           1 :   if ((i1 | 0) == 7) {
   19649           1 :    i1 = 0;
   19650           1 :    i15 = _luaT_gettmbyobj(i7, i14, 15) | 0;
   19651           1 :    if ((HEAP32[i15 + 8 >> 2] | 0) == 0) {
   19652           1 :     i15 = _luaT_gettmbyobj(i7, i13, 15) | 0;
   19653           1 :     if ((HEAP32[i15 + 8 >> 2] | 0) == 0) {
   19654           1 :      i1 = 10;
   19655           1 :      break;
   19656           1 :     }
   19657           1 :    }
   19658           1 :    i18 = i14 - (HEAP32[i3 >> 2] | 0) | 0;
   19659           1 :    i16 = HEAP32[i6 >> 2] | 0;
   19660           1 :    HEAP32[i6 >> 2] = i16 + 16;
   19661           1 :    i20 = i15;
   19662           1 :    i19 = HEAP32[i20 + 4 >> 2] | 0;
   19663           1 :    i17 = i16;
   19664           1 :    HEAP32[i17 >> 2] = HEAP32[i20 >> 2];
   19665           1 :    HEAP32[i17 + 4 >> 2] = i19;
   19666           1 :    HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
   19667           1 :    i15 = HEAP32[i6 >> 2] | 0;
   19668           1 :    HEAP32[i6 >> 2] = i15 + 16;
   19669           1 :    i16 = i14;
   19670           1 :    i17 = HEAP32[i16 + 4 >> 2] | 0;
   19671           1 :    i14 = i15;
   19672           1 :    HEAP32[i14 >> 2] = HEAP32[i16 >> 2];
   19673           1 :    HEAP32[i14 + 4 >> 2] = i17;
   19674           1 :    HEAP32[i15 + 8 >> 2] = HEAP32[i12 >> 2];
   19675           1 :    i12 = HEAP32[i6 >> 2] | 0;
   19676           1 :    HEAP32[i6 >> 2] = i12 + 16;
   19677           1 :    i15 = i13;
   19678           1 :    i14 = HEAP32[i15 + 4 >> 2] | 0;
   19679           1 :    i17 = i12;
   19680           1 :    HEAP32[i17 >> 2] = HEAP32[i15 >> 2];
   19681           1 :    HEAP32[i17 + 4 >> 2] = i14;
   19682           1 :    HEAP32[i12 + 8 >> 2] = HEAP32[i11 + -8 >> 2];
   19683           1 :    _luaD_call(i7, (HEAP32[i6 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i4 >> 2] | 0) + 18 | 0] & 1);
   19684           1 :    i12 = HEAP32[i3 >> 2] | 0;
   19685           1 :    i17 = HEAP32[i6 >> 2] | 0;
   19686           1 :    i14 = i17 + -16 | 0;
   19687           1 :    HEAP32[i6 >> 2] = i14;
   19688           1 :    i15 = HEAP32[i14 + 4 >> 2] | 0;
   19689           1 :    i16 = i12 + i18 | 0;
   19690           1 :    HEAP32[i16 >> 2] = HEAP32[i14 >> 2];
   19691           1 :    HEAP32[i16 + 4 >> 2] = i15;
   19692           1 :    HEAP32[i12 + (i18 + 8) >> 2] = HEAP32[i17 + -8 >> 2];
   19693           1 :    i12 = 2;
   19694           1 :   }
   19695           1 :   i10 = i10 + 1 - i12 | 0;
   19696           1 :   i11 = (HEAP32[i6 >> 2] | 0) + (1 - i12 << 4) | 0;
   19697           1 :   HEAP32[i6 >> 2] = i11;
   19698           1 :   if ((i10 | 0) <= 1) {
   19699           1 :    i1 = 30;
   19700           1 :    break;
   19701           1 :   }
   19702           1 :  }
   19703           1 :  if ((i1 | 0) == 10) {
   19704           1 :   _luaG_concaterror(i7, i14, i13);
   19705           1 :  } else if ((i1 | 0) == 24) {
   19706           1 :   _luaG_runerror(i7, 9e3, i9);
   19707           1 :  } else if ((i1 | 0) == 30) {
   19708           1 :   STACKTOP = i5;
   19709           1 :   return;
   19710           1 :  }
   19711           1 : }
   19712           1 : function _str_gsub(i1) {
   19713           0 :  i1 = i1 | 0;
   19714           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0;
   19715           0 :  i3 = STACKTOP;
   19716           0 :  STACKTOP = STACKTOP + 1344 | 0;
   19717           0 :  i4 = i3;
   19718           0 :  i5 = i3 + 1336 | 0;
   19719           0 :  i14 = i3 + 1332 | 0;
   19720           0 :  i10 = i3 + 1328 | 0;
   19721           0 :  i6 = i3 + 1048 | 0;
   19722           0 :  i2 = i3 + 8 | 0;
   19723           0 :  i20 = _luaL_checklstring(i1, 1, i14) | 0;
   19724           0 :  i13 = _luaL_checklstring(i1, 2, i10) | 0;
   19725           0 :  i8 = _lua_type(i1, 3) | 0;
   19726           0 :  i9 = _luaL_optinteger(i1, 4, (HEAP32[i14 >> 2] | 0) + 1 | 0) | 0;
   19727           0 :  i7 = (HEAP8[i13] | 0) == 94;
   19728           0 :  if (!((i8 + -3 | 0) >>> 0 < 2 | (i8 | 0) == 6 | (i8 | 0) == 5)) {
   19729           0 :   _luaL_argerror(i1, 3, 7528) | 0;
   19730           0 :  }
   19731           0 :  _luaL_buffinit(i1, i2);
   19732           0 :  if (i7) {
   19733           0 :   i15 = (HEAP32[i10 >> 2] | 0) + -1 | 0;
   19734           0 :   HEAP32[i10 >> 2] = i15;
   19735           0 :   i13 = i13 + 1 | 0;
   19736           0 :  } else {
   19737           0 :   i15 = HEAP32[i10 >> 2] | 0;
   19738           0 :  }
   19739           0 :  i11 = i6 + 16 | 0;
   19740           0 :  HEAP32[i11 >> 2] = i1;
   19741           0 :  HEAP32[i6 >> 2] = 200;
   19742           0 :  i12 = i6 + 4 | 0;
   19743           0 :  HEAP32[i12 >> 2] = i20;
   19744           0 :  i10 = i6 + 8 | 0;
   19745           0 :  HEAP32[i10 >> 2] = i20 + (HEAP32[i14 >> 2] | 0);
   19746           0 :  HEAP32[i6 + 12 >> 2] = i13 + i15;
   19747           0 :  i14 = i6 + 20 | 0;
   19748           0 :  i15 = i2 + 8 | 0;
   19749           0 :  i18 = i2 + 4 | 0;
   19750           0 :  i16 = i6 + 28 | 0;
   19751           0 :  i17 = i6 + 24 | 0;
   19752           0 :  i22 = 0;
   19753           0 :  while (1) {
   19754           0 :   if (!(i22 >>> 0 < i9 >>> 0)) {
   19755           0 :    i19 = 48;
   19756           0 :    break;
   19757           0 :   }
   19758           0 :   HEAP32[i14 >> 2] = 0;
   19759           0 :   i21 = _match(i6, i20, i13) | 0;
   19760           0 :   if ((i21 | 0) != 0) {
   19761           0 :    i22 = i22 + 1 | 0;
   19762           0 :    i23 = HEAP32[i11 >> 2] | 0;
   19763           0 :    if ((i8 | 0) == 5) {
   19764           0 :     do {
   19765           0 :      if ((HEAP32[i14 >> 2] | 0) > 0) {
   19766           0 :       i24 = HEAP32[i16 >> 2] | 0;
   19767           0 :       if (!((i24 | 0) == -1)) {
   19768           0 :        i25 = HEAP32[i17 >> 2] | 0;
   19769           0 :        if ((i24 | 0) == -2) {
   19770           0 :         _lua_pushinteger(i23, i25 + 1 - (HEAP32[i12 >> 2] | 0) | 0);
   19771           0 :         break;
   19772           0 :        } else {
   19773           0 :         i19 = i23;
   19774           0 :        }
   19775           0 :       } else {
   19776           0 :        _luaL_error(i23, 7248, i4) | 0;
   19777           0 :        i19 = HEAP32[i11 >> 2] | 0;
   19778           0 :        i25 = HEAP32[i17 >> 2] | 0;
   19779           0 :       }
   19780           0 :       _lua_pushlstring(i19, i25, i24) | 0;
   19781           0 :      } else {
   19782           0 :       _lua_pushlstring(i23, i20, i21 - i20 | 0) | 0;
   19783           0 :      }
   19784           0 :     } while (0);
   19785           0 :     _lua_gettable(i23, 3);
   19786           0 :     i19 = 37;
   19787           0 :    } else if ((i8 | 0) != 6) {
   19788           0 :     i24 = _lua_tolstring(i23, 3, i5) | 0;
   19789           0 :     if ((HEAP32[i5 >> 2] | 0) != 0) {
   19790           0 :      i23 = i21 - i20 | 0;
   19791           0 :      i25 = 0;
   19792           0 :      do {
   19793           0 :       i26 = i24 + i25 | 0;
   19794           0 :       i27 = HEAP8[i26] | 0;
   19795           0 :       do {
   19796           0 :        if (i27 << 24 >> 24 == 37) {
   19797           0 :         i25 = i25 + 1 | 0;
   19798           0 :         i26 = i24 + i25 | 0;
   19799           0 :         i28 = HEAP8[i26] | 0;
   19800           0 :         i27 = i28 << 24 >> 24;
   19801           0 :         if (((i28 & 255) + -48 | 0) >>> 0 < 10) {
   19802           0 :          if (i28 << 24 >> 24 == 48) {
   19803           0 :           _luaL_addlstring(i2, i20, i23);
   19804           0 :           break;
   19805           0 :          } else {
   19806           0 :           _push_onecapture(i6, i27 + -49 | 0, i20, i21);
   19807           0 :           _luaL_addvalue(i2);
   19808           0 :           break;
   19809           0 :          }
   19810           0 :         }
   19811           0 :         if (!(i28 << 24 >> 24 == 37)) {
   19812           0 :          i28 = HEAP32[i11 >> 2] | 0;
   19813           0 :          HEAP32[i4 >> 2] = 37;
   19814           0 :          _luaL_error(i28, 7600, i4) | 0;
   19815           0 :         }
   19816           0 :         i27 = HEAP32[i15 >> 2] | 0;
   19817           0 :         if (!(i27 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) {
   19818           0 :          _luaL_prepbuffsize(i2, 1) | 0;
   19819           0 :          i27 = HEAP32[i15 >> 2] | 0;
   19820           0 :         }
   19821           0 :         i28 = HEAP8[i26] | 0;
   19822           0 :         HEAP32[i15 >> 2] = i27 + 1;
   19823           0 :         HEAP8[(HEAP32[i2 >> 2] | 0) + i27 | 0] = i28;
   19824           0 :        } else {
   19825           0 :         i28 = HEAP32[i15 >> 2] | 0;
   19826           0 :         if (!(i28 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) {
   19827           0 :          _luaL_prepbuffsize(i2, 1) | 0;
   19828           0 :          i28 = HEAP32[i15 >> 2] | 0;
   19829           0 :          i27 = HEAP8[i26] | 0;
   19830           0 :         }
   19831           0 :         HEAP32[i15 >> 2] = i28 + 1;
   19832           0 :         HEAP8[(HEAP32[i2 >> 2] | 0) + i28 | 0] = i27;
   19833           0 :        }
   19834           0 :       } while (0);
   19835           0 :       i25 = i25 + 1 | 0;
   19836           0 :      } while (i25 >>> 0 < (HEAP32[i5 >> 2] | 0) >>> 0);
   19837           0 :     }
   19838           0 :    } else {
   19839           0 :     _lua_pushvalue(i23, 3);
   19840           0 :     i19 = HEAP32[i14 >> 2] | 0;
   19841           0 :     i19 = (i19 | 0) != 0 | (i20 | 0) == 0 ? i19 : 1;
   19842           0 :     _luaL_checkstack(HEAP32[i11 >> 2] | 0, i19, 7200);
   19843           0 :     if ((i19 | 0) > 0) {
   19844           0 :      i24 = 0;
   19845           0 :      do {
   19846           0 :       _push_onecapture(i6, i24, i20, i21);
   19847           0 :       i24 = i24 + 1 | 0;
   19848           0 :      } while ((i24 | 0) != (i19 | 0));
   19849           0 :     }
   19850           0 :     _lua_callk(i23, i19, 1, 0, 0);
   19851           0 :     i19 = 37;
   19852           0 :    }
   19853           0 :    if ((i19 | 0) == 37) {
   19854           0 :     i19 = 0;
   19855           0 :     if ((_lua_toboolean(i23, -1) | 0) != 0) {
   19856           0 :      if ((_lua_isstring(i23, -1) | 0) == 0) {
   19857           0 :       HEAP32[i4 >> 2] = _lua_typename(i23, _lua_type(i23, -1) | 0) | 0;
   19858           0 :       _luaL_error(i23, 7560, i4) | 0;
   19859           0 :      }
   19860           0 :     } else {
   19861           0 :      _lua_settop(i23, -2);
   19862           0 :      _lua_pushlstring(i23, i20, i21 - i20 | 0) | 0;
   19863           0 :     }
   19864           0 :     _luaL_addvalue(i2);
   19865           0 :    }
   19866           0 :    if (i21 >>> 0 > i20 >>> 0) {
   19867           0 :     i20 = i21;
   19868           0 :    } else {
   19869           0 :     i19 = 43;
   19870           0 :    }
   19871           0 :   } else {
   19872           0 :    i19 = 43;
   19873           0 :   }
   19874           0 :   if ((i19 | 0) == 43) {
   19875           0 :    i19 = 0;
   19876           0 :    if (!(i20 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0)) {
   19877           0 :     i19 = 48;
   19878           0 :     break;
   19879           0 :    }
   19880           0 :    i21 = HEAP32[i15 >> 2] | 0;
   19881           0 :    if (!(i21 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) {
   19882           0 :     _luaL_prepbuffsize(i2, 1) | 0;
   19883           0 :     i21 = HEAP32[i15 >> 2] | 0;
   19884           0 :    }
   19885           0 :    i28 = HEAP8[i20] | 0;
   19886           0 :    HEAP32[i15 >> 2] = i21 + 1;
   19887           0 :    HEAP8[(HEAP32[i2 >> 2] | 0) + i21 | 0] = i28;
   19888           0 :    i20 = i20 + 1 | 0;
   19889           0 :   }
   19890           0 :   if (i7) {
   19891           0 :    i19 = 48;
   19892           0 :    break;
   19893           0 :   }
   19894           0 :  }
   19895           0 :  if ((i19 | 0) == 48) {
   19896           0 :   _luaL_addlstring(i2, i20, (HEAP32[i10 >> 2] | 0) - i20 | 0);
   19897           0 :   _luaL_pushresult(i2);
   19898           0 :   _lua_pushinteger(i1, i22);
   19899           0 :   STACKTOP = i3;
   19900           0 :   return 2;
   19901           0 :  }
   19902           0 :  return 0;
   19903           1 : }
   19904           2 : function _constructor(i11, i13) {
   19905           2 :  i11 = i11 | 0;
   19906           2 :  i13 = i13 | 0;
   19907           2 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0;
   19908           2 :  i5 = STACKTOP;
   19909           2 :  STACKTOP = STACKTOP + 64 | 0;
   19910           2 :  i10 = i5 + 40 | 0;
   19911           2 :  i8 = i5;
   19912           2 :  i12 = i11 + 48 | 0;
   19913           2 :  i6 = HEAP32[i12 >> 2] | 0;
   19914           2 :  i9 = HEAP32[i11 + 4 >> 2] | 0;
   19915           2 :  i2 = _luaK_codeABC(i6, 11, 0, 0, 0) | 0;
   19916           2 :  i7 = i8 + 36 | 0;
   19917           2 :  HEAP32[i7 >> 2] = 0;
   19918           2 :  i4 = i8 + 28 | 0;
   19919           2 :  HEAP32[i4 >> 2] = 0;
   19920           2 :  i3 = i8 + 32 | 0;
   19921           2 :  HEAP32[i3 >> 2] = 0;
   19922           2 :  i1 = i8 + 24 | 0;
   19923           2 :  HEAP32[i1 >> 2] = i13;
   19924           2 :  HEAP32[i13 + 16 >> 2] = -1;
   19925           2 :  HEAP32[i13 + 20 >> 2] = -1;
   19926           2 :  HEAP32[i13 >> 2] = 11;
   19927           2 :  HEAP32[i13 + 8 >> 2] = i2;
   19928           2 :  HEAP32[i8 + 16 >> 2] = -1;
   19929           2 :  HEAP32[i8 + 20 >> 2] = -1;
   19930           2 :  HEAP32[i8 >> 2] = 0;
   19931           2 :  HEAP32[i8 + 8 >> 2] = 0;
   19932           2 :  _luaK_exp2nextreg(HEAP32[i12 >> 2] | 0, i13);
   19933           2 :  i13 = i11 + 16 | 0;
   19934           2 :  if ((HEAP32[i13 >> 2] | 0) != 123) {
   19935           2 :   _error_expected(i11, 123);
   19936           2 :  }
   19937           2 :  _luaX_next(i11);
   19938           2 :  L4 : do {
   19939           2 :   if ((HEAP32[i13 >> 2] | 0) != 125) {
   19940           2 :    L5 : while (1) {
   19941           2 :     if ((HEAP32[i8 >> 2] | 0) != 0 ? (_luaK_exp2nextreg(i6, i8), HEAP32[i8 >> 2] = 0, (HEAP32[i7 >> 2] | 0) == 50) : 0) {
   19942           2 :      _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, 50);
   19943           2 :      HEAP32[i7 >> 2] = 0;
   19944           2 :     }
   19945           2 :     i14 = HEAP32[i13 >> 2] | 0;
   19946           2 :     do {
   19947           2 :      if ((i14 | 0) == 288) {
   19948           2 :       if ((_luaX_lookahead(i11) | 0) == 61) {
   19949           2 :        _recfield(i11, i8);
   19950           2 :        break;
   19951           2 :       }
   19952           2 :       _subexpr(i11, i8, 0) | 0;
   19953           2 :       i14 = HEAP32[i12 >> 2] | 0;
   19954           2 :       i15 = HEAP32[i3 >> 2] | 0;
   19955           2 :       if ((i15 | 0) > 2147483645) {
   19956           2 :        i12 = 10;
   19957           2 :        break L5;
   19958           2 :       }
   19959           2 :       HEAP32[i3 >> 2] = i15 + 1;
   19960           2 :       HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1;
   19961           2 :      } else if ((i14 | 0) == 91) {
   19962           2 :       _recfield(i11, i8);
   19963           2 :      } else {
   19964           2 :       _subexpr(i11, i8, 0) | 0;
   19965           2 :       i14 = HEAP32[i12 >> 2] | 0;
   19966           2 :       i15 = HEAP32[i3 >> 2] | 0;
   19967           2 :       if ((i15 | 0) > 2147483645) {
   19968           2 :        i12 = 17;
   19969           2 :        break L5;
   19970           2 :       }
   19971           2 :       HEAP32[i3 >> 2] = i15 + 1;
   19972           2 :       HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1;
   19973           2 :      }
   19974           2 :     } while (0);
   19975           2 :     i14 = HEAP32[i13 >> 2] | 0;
   19976           2 :     if ((i14 | 0) == 44) {
   19977           2 :      _luaX_next(i11);
   19978           2 :     } else if ((i14 | 0) == 59) {
   19979           2 :      _luaX_next(i11);
   19980           2 :     } else {
   19981           2 :      break L4;
   19982           2 :     }
   19983           2 :     if ((HEAP32[i13 >> 2] | 0) == 125) {
   19984           2 :      break L4;
   19985           2 :     }
   19986           2 :    }
   19987           2 :    if ((i12 | 0) == 10) {
   19988           2 :     i12 = i14 + 12 | 0;
   19989           2 :     i13 = HEAP32[(HEAP32[i12 >> 2] | 0) + 52 >> 2] | 0;
   19990           2 :     i14 = HEAP32[(HEAP32[i14 >> 2] | 0) + 64 >> 2] | 0;
   19991           2 :     if ((i14 | 0) == 0) {
   19992           2 :      i16 = 6552;
   19993           2 :      HEAP32[i10 >> 2] = 6528;
   19994           2 :      i15 = i10 + 4 | 0;
   19995           2 :      HEAP32[i15 >> 2] = 2147483645;
   19996           2 :      i15 = i10 + 8 | 0;
   19997           2 :      HEAP32[i15 >> 2] = i16;
   19998           2 :      i15 = _luaO_pushfstring(i13, 6592, i10) | 0;
   19999           2 :      i16 = HEAP32[i12 >> 2] | 0;
   20000           2 :      _luaX_syntaxerror(i16, i15);
   20001           2 :     }
   20002           2 :     HEAP32[i10 >> 2] = i14;
   20003           2 :     i15 = _luaO_pushfstring(i13, 6568, i10) | 0;
   20004           2 :     HEAP32[i10 >> 2] = 6528;
   20005           2 :     i16 = i10 + 4 | 0;
   20006           2 :     HEAP32[i16 >> 2] = 2147483645;
   20007           2 :     i16 = i10 + 8 | 0;
   20008           2 :     HEAP32[i16 >> 2] = i15;
   20009           2 :     i16 = _luaO_pushfstring(i13, 6592, i10) | 0;
   20010           2 :     i15 = HEAP32[i12 >> 2] | 0;
   20011           2 :     _luaX_syntaxerror(i15, i16);
   20012           2 :    } else if ((i12 | 0) == 17) {
   20013           2 :     i13 = i14 + 12 | 0;
   20014           2 :     i12 = HEAP32[(HEAP32[i13 >> 2] | 0) + 52 >> 2] | 0;
   20015           2 :     i14 = HEAP32[(HEAP32[i14 >> 2] | 0) + 64 >> 2] | 0;
   20016           2 :     if ((i14 | 0) == 0) {
   20017           2 :      i15 = 6552;
   20018           2 :      HEAP32[i10 >> 2] = 6528;
   20019           2 :      i16 = i10 + 4 | 0;
   20020           2 :      HEAP32[i16 >> 2] = 2147483645;
   20021           2 :      i16 = i10 + 8 | 0;
   20022           2 :      HEAP32[i16 >> 2] = i15;
   20023           2 :      i16 = _luaO_pushfstring(i12, 6592, i10) | 0;
   20024           2 :      i15 = HEAP32[i13 >> 2] | 0;
   20025           2 :      _luaX_syntaxerror(i15, i16);
   20026           2 :     }
   20027           2 :     HEAP32[i10 >> 2] = i14;
   20028           2 :     i15 = _luaO_pushfstring(i12, 6568, i10) | 0;
   20029           2 :     HEAP32[i10 >> 2] = 6528;
   20030           2 :     i16 = i10 + 4 | 0;
   20031           2 :     HEAP32[i16 >> 2] = 2147483645;
   20032           2 :     i16 = i10 + 8 | 0;
   20033           2 :     HEAP32[i16 >> 2] = i15;
   20034           2 :     i16 = _luaO_pushfstring(i12, 6592, i10) | 0;
   20035           2 :     i15 = HEAP32[i13 >> 2] | 0;
   20036           2 :     _luaX_syntaxerror(i15, i16);
   20037           2 :    }
   20038           2 :   }
   20039           2 :  } while (0);
   20040           2 :  _check_match(i11, 125, 123, i9);
   20041           2 :  i9 = HEAP32[i7 >> 2] | 0;
   20042           2 :  do {
   20043           2 :   if ((i9 | 0) != 0) {
   20044           2 :    i10 = HEAP32[i8 >> 2] | 0;
   20045           2 :    if ((i10 | 0) != 0) if ((i10 | 0) == 13 | (i10 | 0) == 12) {
   20046           2 :     _luaK_setreturns(i6, i8, -1);
   20047           2 :     _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, -1);
   20048           2 :     HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + -1;
   20049           2 :     break;
   20050           2 :    } else {
   20051           2 :     _luaK_exp2nextreg(i6, i8);
   20052           2 :     i9 = HEAP32[i7 >> 2] | 0;
   20053           2 :    }
   20054           2 :    _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, i9);
   20055           2 :   }
   20056           2 :  } while (0);
   20057           2 :  i16 = HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] & 8388607;
   20058           2 :  i16 = (_luaO_int2fb(HEAP32[i3 >> 2] | 0) | 0) << 23 | i16;
   20059           2 :  HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] = i16;
   20060           2 :  i16 = (_luaO_int2fb(HEAP32[i4 >> 2] | 0) | 0) << 14 & 8372224 | i16 & -8372225;
   20061           2 :  HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] = i16;
   20062           2 :  STACKTOP = i5;
   20063           2 :  return;
   20064           2 : }
   20065           1 : function _luaK_prefix(i4, i14, i7, i13) {
   20066           1 :  i4 = i4 | 0;
   20067           1 :  i14 = i14 | 0;
   20068           1 :  i7 = i7 | 0;
   20069           1 :  i13 = i13 | 0;
   20070           1 :  var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
   20071           1 :  i1 = STACKTOP;
   20072           1 :  STACKTOP = STACKTOP + 32 | 0;
   20073           1 :  i12 = i1;
   20074           1 :  HEAP32[i12 + 20 >> 2] = -1;
   20075           1 :  HEAP32[i12 + 16 >> 2] = -1;
   20076           1 :  HEAP32[i12 >> 2] = 5;
   20077           1 :  HEAPF64[i12 + 8 >> 3] = 0.0;
   20078           1 :  if ((i14 | 0) == 1) {
   20079           1 :   _luaK_dischargevars(i4, i7);
   20080           1 :   switch (HEAP32[i7 >> 2] | 0) {
   20081           1 :   case 2:
   20082           1 :   case 5:
   20083           1 :   case 4:
   20084           1 :    {
   20085           1 :     HEAP32[i7 >> 2] = 3;
   20086           1 :     break;
   20087           1 :    }
   20088           1 :   case 10:
   20089           1 :    {
   20090           1 :     i13 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   20091           1 :     i12 = HEAP32[i7 + 8 >> 2] | 0;
   20092           1 :     i10 = i13 + (i12 << 2) | 0;
   20093           1 :     if (!((i12 | 0) > 0 ? (i11 = i13 + (i12 + -1 << 2) | 0, i9 = HEAP32[i11 >> 2] | 0, (HEAP8[5584 + (i9 & 63) | 0] | 0) < 0) : 0)) {
   20094           1 :      i11 = i10;
   20095           1 :      i9 = HEAP32[i10 >> 2] | 0;
   20096           1 :     }
   20097           1 :     HEAP32[i11 >> 2] = ((i9 & 16320 | 0) == 0) << 6 | i9 & -16321;
   20098           1 :     break;
   20099           1 :    }
   20100           1 :   case 6:
   20101           1 :    {
   20102           1 :     i8 = 25;
   20103           1 :     break;
   20104           1 :    }
   20105           1 :   case 3:
   20106           1 :   case 1:
   20107           1 :    {
   20108           1 :     HEAP32[i7 >> 2] = 2;
   20109           1 :     break;
   20110           1 :    }
   20111           1 :   case 11:
   20112           1 :    {
   20113           1 :     i12 = i4 + 48 | 0;
   20114           1 :     i8 = HEAP8[i12] | 0;
   20115           1 :     i11 = (i8 & 255) + 1 | 0;
   20116           1 :     i9 = (HEAP32[i4 >> 2] | 0) + 78 | 0;
   20117           1 :     do {
   20118           1 :      if (i11 >>> 0 > (HEAPU8[i9] | 0) >>> 0) {
   20119           1 :       if (i11 >>> 0 > 249) {
   20120           1 :        _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10536);
   20121           1 :       } else {
   20122           1 :        HEAP8[i9] = i11;
   20123           1 :        i10 = HEAP8[i12] | 0;
   20124           1 :        break;
   20125           1 :       }
   20126           1 :      } else {
   20127           1 :       i10 = i8;
   20128           1 :      }
   20129           1 :     } while (0);
   20130           1 :     i14 = (i10 & 255) + 1 | 0;
   20131           1 :     HEAP8[i12] = i14;
   20132           1 :     _discharge2reg(i4, i7, (i14 & 255) + -1 | 0);
   20133           1 :     if ((HEAP32[i7 >> 2] | 0) == 6) {
   20134           1 :      i8 = 25;
   20135           1 :     } else {
   20136           1 :      i9 = i7 + 8 | 0;
   20137           1 :      i8 = 28;
   20138           1 :     }
   20139           1 :     break;
   20140           1 :    }
   20141           1 :   default:
   20142           1 :    {}
   20143           1 :   }
   20144           1 :   if ((i8 | 0) == 25) {
   20145           1 :    i8 = i7 + 8 | 0;
   20146           1 :    i9 = HEAP32[i8 >> 2] | 0;
   20147           1 :    if ((i9 & 256 | 0) == 0 ? (HEAPU8[i4 + 46 | 0] | 0) <= (i9 | 0) : 0) {
   20148           1 :     i9 = i4 + 48 | 0;
   20149           1 :     HEAP8[i9] = (HEAP8[i9] | 0) + -1 << 24 >> 24;
   20150           1 :     i9 = i8;
   20151           1 :     i8 = 28;
   20152           1 :    } else {
   20153           1 :     i9 = i8;
   20154           1 :     i8 = 28;
   20155           1 :    }
   20156           1 :   }
   20157           1 :   if ((i8 | 0) == 28) {
   20158           1 :    HEAP32[i9 >> 2] = _luaK_code(i4, HEAP32[i9 >> 2] << 23 | 20) | 0;
   20159           1 :    HEAP32[i7 >> 2] = 11;
   20160           1 :   }
   20161           1 :   i14 = i7 + 20 | 0;
   20162           1 :   i8 = HEAP32[i14 >> 2] | 0;
   20163           1 :   i7 = i7 + 16 | 0;
   20164           1 :   i9 = HEAP32[i7 >> 2] | 0;
   20165           1 :   HEAP32[i14 >> 2] = i9;
   20166           1 :   HEAP32[i7 >> 2] = i8;
   20167           1 :   if (!((i9 | 0) == -1)) {
   20168           1 :    i8 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   20169           1 :    do {
   20170           1 :     i12 = i8 + (i9 << 2) | 0;
   20171           1 :     if ((i9 | 0) > 0 ? (i5 = i8 + (i9 + -1 << 2) | 0, i6 = HEAP32[i5 >> 2] | 0, (HEAP8[5584 + (i6 & 63) | 0] | 0) < 0) : 0) {
   20172           1 :      i10 = i5;
   20173           1 :      i11 = i6;
   20174           1 :     } else {
   20175           1 :      i10 = i12;
   20176           1 :      i11 = HEAP32[i12 >> 2] | 0;
   20177           1 :     }
   20178           1 :     if ((i11 & 63 | 0) == 28) {
   20179           1 :      HEAP32[i10 >> 2] = i11 & 8372224 | i11 >>> 23 << 6 | 27;
   20180           1 :     }
   20181           1 :     i10 = ((HEAP32[i12 >> 2] | 0) >>> 14) + -131071 | 0;
   20182           1 :     if ((i10 | 0) == -1) {
   20183           1 :      break;
   20184           1 :     }
   20185           1 :     i9 = i9 + 1 + i10 | 0;
   20186           1 :    } while (!((i9 | 0) == -1));
   20187           1 :    i8 = HEAP32[i7 >> 2] | 0;
   20188           1 :   }
   20189           1 :   if ((i8 | 0) == -1) {
   20190           1 :    STACKTOP = i1;
   20191           1 :    return;
   20192           1 :   }
   20193           1 :   i4 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
   20194           1 :   while (1) {
   20195           1 :    i6 = i4 + (i8 << 2) | 0;
   20196           1 :    if ((i8 | 0) > 0 ? (i2 = i4 + (i8 + -1 << 2) | 0, i3 = HEAP32[i2 >> 2] | 0, (HEAP8[5584 + (i3 & 63) | 0] | 0) < 0) : 0) {
   20197           1 :     i7 = i2;
   20198           1 :     i5 = i3;
   20199           1 :    } else {
   20200           1 :     i7 = i6;
   20201           1 :     i5 = HEAP32[i6 >> 2] | 0;
   20202           1 :    }
   20203           1 :    if ((i5 & 63 | 0) == 28) {
   20204           1 :     HEAP32[i7 >> 2] = i5 & 8372224 | i5 >>> 23 << 6 | 27;
   20205           1 :    }
   20206           1 :    i5 = ((HEAP32[i6 >> 2] | 0) >>> 14) + -131071 | 0;
   20207           1 :    if ((i5 | 0) == -1) {
   20208           1 :     i8 = 54;
   20209           1 :     break;
   20210           1 :    }
   20211           1 :    i8 = i8 + 1 + i5 | 0;
   20212           1 :    if ((i8 | 0) == -1) {
   20213           1 :     i8 = 54;
   20214           1 :     break;
   20215           1 :    }
   20216           1 :   }
   20217           1 :   if ((i8 | 0) == 54) {
   20218           1 :    STACKTOP = i1;
   20219           1 :    return;
   20220           1 :   }
   20221           1 :  } else if ((i14 | 0) == 0) {
   20222           1 :   if (((HEAP32[i7 >> 2] | 0) == 5 ? (HEAP32[i7 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i7 + 20 >> 2] | 0) == -1 : 0) {
   20223           1 :    i14 = i7 + 8 | 0;
   20224           1 :    HEAPF64[i14 >> 3] = -+HEAPF64[i14 >> 3];
   20225           1 :    STACKTOP = i1;
   20226           1 :    return;
   20227           1 :   }
   20228           1 :   _luaK_dischargevars(i4, i7);
   20229           1 :   if ((HEAP32[i7 >> 2] | 0) == 6) {
   20230           1 :    i2 = HEAP32[i7 + 8 >> 2] | 0;
   20231           1 :    if ((HEAP32[i7 + 16 >> 2] | 0) != (HEAP32[i7 + 20 >> 2] | 0)) {
   20232           1 :     if ((i2 | 0) < (HEAPU8[i4 + 46 | 0] | 0)) {
   20233           1 :      i8 = 10;
   20234           1 :     } else {
   20235           1 :      _exp2reg(i4, i7, i2);
   20236           1 :     }
   20237           1 :    }
   20238           1 :   } else {
   20239           1 :    i8 = 10;
   20240           1 :   }
   20241           1 :   if ((i8 | 0) == 10) {
   20242           1 :    _luaK_exp2nextreg(i4, i7);
   20243           1 :   }
   20244           1 :   _codearith(i4, 19, i7, i12, i13);
   20245           1 :   STACKTOP = i1;
   20246           1 :   return;
   20247           1 :  } else if ((i14 | 0) == 2) {
   20248           1 :   _luaK_dischargevars(i4, i7);
   20249           1 :   if ((HEAP32[i7 >> 2] | 0) == 6) {
   20250           1 :    i2 = HEAP32[i7 + 8 >> 2] | 0;
   20251           1 :    if ((HEAP32[i7 + 16 >> 2] | 0) != (HEAP32[i7 + 20 >> 2] | 0)) {
   20252           1 :     if ((i2 | 0) < (HEAPU8[i4 + 46 | 0] | 0)) {
   20253           1 :      i8 = 52;
   20254           1 :     } else {
   20255           1 :      _exp2reg(i4, i7, i2);
   20256           1 :     }
   20257           1 :    }
   20258           1 :   } else {
   20259           1 :    i8 = 52;
   20260           1 :   }
   20261           1 :   if ((i8 | 0) == 52) {
   20262           1 :    _luaK_exp2nextreg(i4, i7);
   20263           1 :   }
   20264           1 :   _codearith(i4, 21, i7, i12, i13);
   20265           1 :   STACKTOP = i1;
   20266           1 :   return;
   20267           1 :  } else {
   20268           1 :   STACKTOP = i1;
   20269           1 :   return;
   20270           1 :  }
   20271           1 : }
   20272         105 : function _subexpr(i6, i3, i7) {
   20273         105 :  i6 = i6 | 0;
   20274         105 :  i3 = i3 | 0;
   20275         105 :  i7 = i7 | 0;
   20276         105 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
   20277         105 :  i2 = STACKTOP;
   20278         105 :  STACKTOP = STACKTOP + 48 | 0;
   20279         105 :  i11 = i2 + 24 | 0;
   20280         105 :  i5 = i2;
   20281         105 :  i4 = i6 + 48 | 0;
   20282         105 :  i9 = HEAP32[i4 >> 2] | 0;
   20283         105 :  i1 = i6 + 52 | 0;
   20284         105 :  i12 = (HEAP32[i1 >> 2] | 0) + 38 | 0;
   20285         105 :  i13 = (HEAP16[i12 >> 1] | 0) + 1 << 16 >> 16;
   20286         105 :  HEAP16[i12 >> 1] = i13;
   20287         105 :  if ((i13 & 65535) > 200) {
   20288         105 :   i10 = i9 + 12 | 0;
   20289         105 :   i12 = HEAP32[(HEAP32[i10 >> 2] | 0) + 52 >> 2] | 0;
   20290         105 :   i13 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0;
   20291         105 :   if ((i13 | 0) == 0) {
   20292         105 :    i15 = 6552;
   20293         105 :    HEAP32[i11 >> 2] = 6360;
   20294         105 :    i14 = i11 + 4 | 0;
   20295         105 :    HEAP32[i14 >> 2] = 200;
   20296         105 :    i14 = i11 + 8 | 0;
   20297         105 :    HEAP32[i14 >> 2] = i15;
   20298         105 :    i14 = _luaO_pushfstring(i12, 6592, i11) | 0;
   20299         105 :    i15 = HEAP32[i10 >> 2] | 0;
   20300         105 :    _luaX_syntaxerror(i15, i14);
   20301         105 :   }
   20302         105 :   HEAP32[i11 >> 2] = i13;
   20303         105 :   i14 = _luaO_pushfstring(i12, 6568, i11) | 0;
   20304         105 :   HEAP32[i11 >> 2] = 6360;
   20305         105 :   i15 = i11 + 4 | 0;
   20306         105 :   HEAP32[i15 >> 2] = 200;
   20307         105 :   i15 = i11 + 8 | 0;
   20308         105 :   HEAP32[i15 >> 2] = i14;
   20309         105 :   i15 = _luaO_pushfstring(i12, 6592, i11) | 0;
   20310         105 :   i14 = HEAP32[i10 >> 2] | 0;
   20311         105 :   _luaX_syntaxerror(i14, i15);
   20312         105 :  }
   20313         105 :  i10 = i6 + 16 | 0;
   20314         105 :  L8 : do {
   20315         105 :   switch (HEAP32[i10 >> 2] | 0) {
   20316         105 :   case 287:
   20317         105 :    {
   20318         105 :     HEAP32[i3 + 16 >> 2] = -1;
   20319         105 :     HEAP32[i3 + 20 >> 2] = -1;
   20320         105 :     HEAP32[i3 >> 2] = 5;
   20321         105 :     HEAP32[i3 + 8 >> 2] = 0;
   20322         105 :     HEAPF64[i3 + 8 >> 3] = +HEAPF64[i6 + 24 >> 3];
   20323         105 :     i8 = 20;
   20324         105 :     break;
   20325         105 :    }
   20326         105 :   case 271:
   20327         105 :    {
   20328         105 :     i9 = 1;
   20329         105 :     i8 = 8;
   20330         105 :     break;
   20331         105 :    }
   20332         105 :   case 289:
   20333         105 :    {
   20334         105 :     i8 = _luaK_stringK(i9, HEAP32[i6 + 24 >> 2] | 0) | 0;
   20335         105 :     HEAP32[i3 + 16 >> 2] = -1;
   20336         105 :     HEAP32[i3 + 20 >> 2] = -1;
   20337         105 :     HEAP32[i3 >> 2] = 4;
   20338         105 :     HEAP32[i3 + 8 >> 2] = i8;
   20339         105 :     i8 = 20;
   20340         105 :     break;
   20341         105 :    }
   20342         105 :   case 265:
   20343         105 :    {
   20344         105 :     _luaX_next(i6);
   20345         105 :     _body(i6, i3, 0, HEAP32[i6 + 4 >> 2] | 0);
   20346         105 :     break;
   20347         105 :    }
   20348         105 :   case 276:
   20349         105 :    {
   20350         105 :     HEAP32[i3 + 16 >> 2] = -1;
   20351         105 :     HEAP32[i3 + 20 >> 2] = -1;
   20352         105 :     HEAP32[i3 >> 2] = 2;
   20353         105 :     HEAP32[i3 + 8 >> 2] = 0;
   20354         105 :     i8 = 20;
   20355         105 :     break;
   20356         105 :    }
   20357         105 :   case 45:
   20358         105 :    {
   20359         105 :     i9 = 0;
   20360         105 :     i8 = 8;
   20361         105 :     break;
   20362         105 :    }
   20363         105 :   case 35:
   20364         105 :    {
   20365         105 :     i9 = 2;
   20366         105 :     i8 = 8;
   20367         105 :     break;
   20368         105 :    }
   20369         105 :   case 123:
   20370         105 :    {
   20371         105 :     _constructor(i6, i3);
   20372         105 :     break;
   20373         105 :    }
   20374         105 :   case 263:
   20375         105 :    {
   20376         105 :     HEAP32[i3 + 16 >> 2] = -1;
   20377         105 :     HEAP32[i3 + 20 >> 2] = -1;
   20378         105 :     HEAP32[i3 >> 2] = 3;
   20379         105 :     HEAP32[i3 + 8 >> 2] = 0;
   20380         105 :     i8 = 20;
   20381         105 :     break;
   20382         105 :    }
   20383         105 :   case 280:
   20384         105 :    {
   20385         105 :     if ((HEAP8[(HEAP32[i9 >> 2] | 0) + 77 | 0] | 0) == 0) {
   20386         105 :      _luaX_syntaxerror(i6, 6408);
   20387         105 :     } else {
   20388         105 :      i8 = _luaK_codeABC(i9, 38, 0, 1, 0) | 0;
   20389         105 :      HEAP32[i3 + 16 >> 2] = -1;
   20390         105 :      HEAP32[i3 + 20 >> 2] = -1;
   20391         105 :      HEAP32[i3 >> 2] = 13;
   20392         105 :      HEAP32[i3 + 8 >> 2] = i8;
   20393         105 :      i8 = 20;
   20394         105 :      break L8;
   20395         105 :     }
   20396         105 :     break;
   20397         105 :    }
   20398         105 :   case 270:
   20399         105 :    {
   20400         105 :     HEAP32[i3 + 16 >> 2] = -1;
   20401         105 :     HEAP32[i3 + 20 >> 2] = -1;
   20402         105 :     HEAP32[i3 >> 2] = 1;
   20403         105 :     HEAP32[i3 + 8 >> 2] = 0;
   20404         105 :     i8 = 20;
   20405         105 :     break;
   20406         105 :    }
   20407         105 :   default:
   20408         105 :    {
   20409         105 :     _suffixedexp(i6, i3);
   20410         105 :    }
   20411         105 :   }
   20412         105 :  } while (0);
   20413         105 :  if ((i8 | 0) == 8) {
   20414         105 :   i15 = HEAP32[i6 + 4 >> 2] | 0;
   20415         105 :   _luaX_next(i6);
   20416         105 :   _subexpr(i6, i3, 8) | 0;
   20417         105 :   _luaK_prefix(HEAP32[i4 >> 2] | 0, i9, i3, i15);
   20418         105 :  } else if ((i8 | 0) == 20) {
   20419         105 :   _luaX_next(i6);
   20420         105 :  }
   20421         105 :  switch (HEAP32[i10 >> 2] | 0) {
   20422         105 :  case 257:
   20423         105 :   {
   20424         105 :    i9 = 13;
   20425         105 :    break;
   20426         105 :   }
   20427         105 :  case 272:
   20428         105 :   {
   20429         105 :    i9 = 14;
   20430         105 :    break;
   20431         105 :   }
   20432         105 :  case 47:
   20433         105 :   {
   20434         105 :    i9 = 3;
   20435         105 :    break;
   20436         105 :   }
   20437         105 :  case 37:
   20438         105 :   {
   20439         105 :    i9 = 4;
   20440         105 :    break;
   20441         105 :   }
   20442         105 :  case 43:
   20443         105 :   {
   20444         105 :    i9 = 0;
   20445         105 :    break;
   20446         105 :   }
   20447         105 :  case 284:
   20448         105 :   {
   20449         105 :    i9 = 10;
   20450         105 :    break;
   20451         105 :   }
   20452         105 :  case 281:
   20453         105 :   {
   20454         105 :    i9 = 7;
   20455         105 :    break;
   20456         105 :   }
   20457         105 :  case 62:
   20458         105 :   {
   20459         105 :    i9 = 11;
   20460         105 :    break;
   20461         105 :   }
   20462         105 :  case 282:
   20463         105 :   {
   20464         105 :    i9 = 12;
   20465         105 :    break;
   20466         105 :   }
   20467         105 :  case 45:
   20468         105 :   {
   20469         105 :    i9 = 1;
   20470         105 :    break;
   20471         105 :   }
   20472         105 :  case 42:
   20473         105 :   {
   20474         105 :    i9 = 2;
   20475         105 :    break;
   20476         105 :   }
   20477         105 :  case 60:
   20478         105 :   {
   20479         105 :    i9 = 8;
   20480         105 :    break;
   20481         105 :   }
   20482         105 :  case 283:
   20483         105 :   {
   20484         105 :    i9 = 9;
   20485         105 :    break;
   20486         105 :   }
   20487         105 :  case 94:
   20488         105 :   {
   20489         105 :    i9 = 5;
   20490         105 :    break;
   20491         105 :   }
   20492         105 :  case 279:
   20493         105 :   {
   20494         105 :    i9 = 6;
   20495         105 :    break;
   20496         105 :   }
   20497         105 :  default:
   20498         105 :   {
   20499         105 :    i15 = 15;
   20500         105 :    i14 = HEAP32[i1 >> 2] | 0;
   20501         105 :    i14 = i14 + 38 | 0;
   20502         105 :    i13 = HEAP16[i14 >> 1] | 0;
   20503         105 :    i13 = i13 + -1 << 16 >> 16;
   20504         105 :    HEAP16[i14 >> 1] = i13;
   20505         105 :    STACKTOP = i2;
   20506         105 :    return i15 | 0;
   20507         105 :   }
   20508         105 :  }
   20509         105 :  i8 = i6 + 4 | 0;
   20510         105 :  while (1) {
   20511         105 :   if ((HEAPU8[6376 + (i9 << 1) | 0] | 0) <= (i7 | 0)) {
   20512         105 :    i8 = 39;
   20513         105 :    break;
   20514         105 :   }
   20515         105 :   i15 = HEAP32[i8 >> 2] | 0;
   20516         105 :   _luaX_next(i6);
   20517         105 :   _luaK_infix(HEAP32[i4 >> 2] | 0, i9, i3);
   20518         105 :   i10 = _subexpr(i6, i5, HEAPU8[6377 + (i9 << 1) | 0] | 0) | 0;
   20519         105 :   _luaK_posfix(HEAP32[i4 >> 2] | 0, i9, i3, i5, i15);
   20520         105 :   if ((i10 | 0) == 15) {
   20521         105 :    i9 = 15;
   20522         105 :    i8 = 39;
   20523         105 :    break;
   20524         105 :   } else {
   20525         105 :    i9 = i10;
   20526         105 :   }
   20527         105 :  }
   20528         105 :  if ((i8 | 0) == 39) {
   20529         105 :   i15 = HEAP32[i1 >> 2] | 0;
   20530         105 :   i15 = i15 + 38 | 0;
   20531         105 :   i14 = HEAP16[i15 >> 1] | 0;
   20532         105 :   i14 = i14 + -1 << 16 >> 16;
   20533         105 :   HEAP16[i15 >> 1] = i14;
   20534         105 :   STACKTOP = i2;
   20535         105 :   return i9 | 0;
   20536         105 :  }
   20537         105 :  return 0;
   20538         105 : }
   20539           1 : function _luaV_lessequal(i5, i3, i2) {
   20540           0 :  i5 = i5 | 0;
   20541           0 :  i3 = i3 | 0;
   20542           0 :  i2 = i2 | 0;
   20543           0 :  var i1 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   20544           0 :  i1 = STACKTOP;
   20545           0 :  i4 = i3 + 8 | 0;
   20546           0 :  i7 = HEAP32[i4 >> 2] | 0;
   20547           0 :  if ((i7 | 0) == 3) {
   20548           0 :   if ((HEAP32[i2 + 8 >> 2] | 0) == 3) {
   20549           0 :    i9 = +HEAPF64[i3 >> 3] <= +HEAPF64[i2 >> 3] | 0;
   20550           0 :    STACKTOP = i1;
   20551           0 :    return i9 | 0;
   20552           0 :   }
   20553           0 :  } else {
   20554           0 :   if ((i7 & 15 | 0) == 4 ? (HEAP32[i2 + 8 >> 2] & 15 | 0) == 4 : 0) {
   20555           0 :    i3 = HEAP32[i3 >> 2] | 0;
   20556           0 :    i6 = HEAP32[i2 >> 2] | 0;
   20557           0 :    i4 = i3 + 16 | 0;
   20558           0 :    i5 = i6 + 16 | 0;
   20559           0 :    i7 = _strcmp(i4, i5) | 0;
   20560           0 :    L8 : do {
   20561           0 :     if ((i7 | 0) == 0) {
   20562           0 :      i2 = HEAP32[i3 + 12 >> 2] | 0;
   20563           0 :      i3 = HEAP32[i6 + 12 >> 2] | 0;
   20564           0 :      i6 = i5;
   20565           0 :      while (1) {
   20566           0 :       i5 = _strlen(i4 | 0) | 0;
   20567           0 :       i7 = (i5 | 0) == (i2 | 0);
   20568           0 :       if ((i5 | 0) == (i3 | 0)) {
   20569           0 :        break;
   20570           0 :       }
   20571           0 :       if (i7) {
   20572           0 :        i7 = -1;
   20573           0 :        break L8;
   20574           0 :       }
   20575           0 :       i5 = i5 + 1 | 0;
   20576           0 :       i4 = i4 + i5 | 0;
   20577           0 :       i6 = i6 + i5 | 0;
   20578           0 :       i7 = _strcmp(i4, i6) | 0;
   20579           0 :       if ((i7 | 0) == 0) {
   20580           0 :        i2 = i2 - i5 | 0;
   20581           0 :        i3 = i3 - i5 | 0;
   20582           0 :       } else {
   20583           0 :        break L8;
   20584           0 :       }
   20585           0 :      }
   20586           0 :      i7 = i7 & 1 ^ 1;
   20587           0 :     }
   20588           0 :    } while (0);
   20589           0 :    i9 = (i7 | 0) < 1 | 0;
   20590           0 :    STACKTOP = i1;
   20591           0 :    return i9 | 0;
   20592           0 :   }
   20593           0 :  }
   20594           0 :  i7 = i5 + 8 | 0;
   20595           0 :  i8 = HEAP32[i7 >> 2] | 0;
   20596           0 :  i9 = _luaT_gettmbyobj(i5, i3, 14) | 0;
   20597           0 :  if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
   20598           0 :   i9 = _luaT_gettmbyobj(i5, i2, 14) | 0;
   20599           0 :   if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
   20600           0 :    i8 = HEAP32[i7 >> 2] | 0;
   20601           0 :    i9 = _luaT_gettmbyobj(i5, i2, 13) | 0;
   20602           0 :    if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
   20603           0 :     i9 = _luaT_gettmbyobj(i5, i3, 13) | 0;
   20604           0 :     if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
   20605           0 :      _luaG_ordererror(i5, i3, i2);
   20606           0 :     } else {
   20607           0 :      i6 = i9;
   20608           0 :     }
   20609           0 :    } else {
   20610           0 :     i6 = i9;
   20611           0 :    }
   20612           0 :    i10 = i5 + 28 | 0;
   20613           0 :    i9 = i8 - (HEAP32[i10 >> 2] | 0) | 0;
   20614           0 :    i8 = HEAP32[i7 >> 2] | 0;
   20615           0 :    HEAP32[i7 >> 2] = i8 + 16;
   20616           0 :    i13 = i6;
   20617           0 :    i11 = HEAP32[i13 + 4 >> 2] | 0;
   20618           0 :    i12 = i8;
   20619           0 :    HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
   20620           0 :    HEAP32[i12 + 4 >> 2] = i11;
   20621           0 :    HEAP32[i8 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
   20622           0 :    i8 = HEAP32[i7 >> 2] | 0;
   20623           0 :    HEAP32[i7 >> 2] = i8 + 16;
   20624           0 :    i12 = i2;
   20625           0 :    i11 = HEAP32[i12 + 4 >> 2] | 0;
   20626           0 :    i6 = i8;
   20627           0 :    HEAP32[i6 >> 2] = HEAP32[i12 >> 2];
   20628           0 :    HEAP32[i6 + 4 >> 2] = i11;
   20629           0 :    HEAP32[i8 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
   20630           0 :    i2 = HEAP32[i7 >> 2] | 0;
   20631           0 :    HEAP32[i7 >> 2] = i2 + 16;
   20632           0 :    i8 = i3;
   20633           0 :    i6 = HEAP32[i8 + 4 >> 2] | 0;
   20634           0 :    i3 = i2;
   20635           0 :    HEAP32[i3 >> 2] = HEAP32[i8 >> 2];
   20636           0 :    HEAP32[i3 + 4 >> 2] = i6;
   20637           0 :    HEAP32[i2 + 8 >> 2] = HEAP32[i4 >> 2];
   20638           0 :    _luaD_call(i5, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1);
   20639           0 :    i3 = HEAP32[i10 >> 2] | 0;
   20640           0 :    i2 = HEAP32[i7 >> 2] | 0;
   20641           0 :    i5 = i2 + -16 | 0;
   20642           0 :    HEAP32[i7 >> 2] = i5;
   20643           0 :    i6 = HEAP32[i5 + 4 >> 2] | 0;
   20644           0 :    i8 = i3 + i9 | 0;
   20645           0 :    HEAP32[i8 >> 2] = HEAP32[i5 >> 2];
   20646           0 :    HEAP32[i8 + 4 >> 2] = i6;
   20647           0 :    HEAP32[i3 + (i9 + 8) >> 2] = HEAP32[i2 + -8 >> 2];
   20648           0 :    i3 = HEAP32[i7 >> 2] | 0;
   20649           0 :    i2 = HEAP32[i3 + 8 >> 2] | 0;
   20650           0 :    if ((i2 | 0) != 0) {
   20651           0 :     if ((i2 | 0) == 1) {
   20652           0 :      i2 = (HEAP32[i3 >> 2] | 0) != 0;
   20653           0 :     } else {
   20654           0 :      i2 = 1;
   20655           0 :     }
   20656           0 :    } else {
   20657           0 :     i2 = 0;
   20658           0 :    }
   20659           0 :    i13 = i2 & 1 ^ 1;
   20660           0 :    STACKTOP = i1;
   20661           0 :    return i13 | 0;
   20662           0 :   }
   20663           0 :  }
   20664           0 :  i10 = i5 + 28 | 0;
   20665           0 :  i13 = i8 - (HEAP32[i10 >> 2] | 0) | 0;
   20666           0 :  i11 = HEAP32[i7 >> 2] | 0;
   20667           0 :  HEAP32[i7 >> 2] = i11 + 16;
   20668           0 :  i6 = i9;
   20669           0 :  i8 = HEAP32[i6 + 4 >> 2] | 0;
   20670           0 :  i12 = i11;
   20671           0 :  HEAP32[i12 >> 2] = HEAP32[i6 >> 2];
   20672           0 :  HEAP32[i12 + 4 >> 2] = i8;
   20673           0 :  HEAP32[i11 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
   20674           0 :  i9 = HEAP32[i7 >> 2] | 0;
   20675           0 :  HEAP32[i7 >> 2] = i9 + 16;
   20676           0 :  i11 = i3;
   20677           0 :  i12 = HEAP32[i11 + 4 >> 2] | 0;
   20678           0 :  i3 = i9;
   20679           0 :  HEAP32[i3 >> 2] = HEAP32[i11 >> 2];
   20680           0 :  HEAP32[i3 + 4 >> 2] = i12;
   20681           0 :  HEAP32[i9 + 8 >> 2] = HEAP32[i4 >> 2];
   20682           0 :  i3 = HEAP32[i7 >> 2] | 0;
   20683           0 :  HEAP32[i7 >> 2] = i3 + 16;
   20684           0 :  i9 = i2;
   20685           0 :  i12 = HEAP32[i9 + 4 >> 2] | 0;
   20686           0 :  i11 = i3;
   20687           0 :  HEAP32[i11 >> 2] = HEAP32[i9 >> 2];
   20688           0 :  HEAP32[i11 + 4 >> 2] = i12;
   20689           0 :  HEAP32[i3 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
   20690           0 :  _luaD_call(i5, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1);
   20691           0 :  i2 = HEAP32[i10 >> 2] | 0;
   20692           0 :  i3 = HEAP32[i7 >> 2] | 0;
   20693           0 :  i10 = i3 + -16 | 0;
   20694           0 :  HEAP32[i7 >> 2] = i10;
   20695           0 :  i11 = HEAP32[i10 + 4 >> 2] | 0;
   20696           0 :  i12 = i2 + i13 | 0;
   20697           0 :  HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
   20698           0 :  HEAP32[i12 + 4 >> 2] = i11;
   20699           0 :  HEAP32[i2 + (i13 + 8) >> 2] = HEAP32[i3 + -8 >> 2];
   20700           0 :  i2 = HEAP32[i7 >> 2] | 0;
   20701           0 :  i3 = HEAP32[i2 + 8 >> 2] | 0;
   20702           0 :  if ((i3 | 0) != 0) {
   20703           0 :   if ((i3 | 0) == 1) {
   20704           0 :    i2 = (HEAP32[i2 >> 2] | 0) != 0;
   20705           0 :   } else {
   20706           0 :    i2 = 1;
   20707           0 :   }
   20708           0 :  } else {
   20709           0 :   i2 = 0;
   20710           0 :  }
   20711           0 :  i13 = i2 & 1;
   20712           0 :  STACKTOP = i1;
   20713           0 :  return i13 | 0;
   20714           1 : }
   20715          48 : function ___udivmoddi4(i6, i8, i2, i4, i1) {
   20716          48 :  i6 = i6 | 0;
   20717          48 :  i8 = i8 | 0;
   20718          48 :  i2 = i2 | 0;
   20719          48 :  i4 = i4 | 0;
   20720          48 :  i1 = i1 | 0;
   20721          48 :  var i3 = 0, i5 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
   20722          48 :  i5 = i6;
   20723          48 :  i9 = i8;
   20724          48 :  i7 = i9;
   20725          48 :  i10 = i2;
   20726          48 :  i3 = i4;
   20727          48 :  i11 = i3;
   20728          48 :  if ((i7 | 0) == 0) {
   20729          48 :   i2 = (i1 | 0) != 0;
   20730          48 :   if ((i11 | 0) == 0) {
   20731          48 :    if (i2) {
   20732          48 :     HEAP32[i1 >> 2] = (i5 >>> 0) % (i10 >>> 0);
   20733          48 :     HEAP32[i1 + 4 >> 2] = 0;
   20734          48 :    }
   20735          48 :    i11 = 0;
   20736          48 :    i12 = (i5 >>> 0) / (i10 >>> 0) >>> 0;
   20737          48 :    return (tempRet0 = i11, i12) | 0;
   20738          48 :   } else {
   20739          48 :    if (!i2) {
   20740          48 :     i11 = 0;
   20741          48 :     i12 = 0;
   20742          48 :     return (tempRet0 = i11, i12) | 0;
   20743          48 :    }
   20744          48 :    HEAP32[i1 >> 2] = i6 | 0;
   20745          48 :    HEAP32[i1 + 4 >> 2] = i8 & 0;
   20746          48 :    i11 = 0;
   20747          48 :    i12 = 0;
   20748          48 :    return (tempRet0 = i11, i12) | 0;
   20749          48 :   }
   20750          48 :  }
   20751          48 :  i12 = (i11 | 0) == 0;
   20752          48 :  do {
   20753          48 :   if ((i10 | 0) != 0) {
   20754          48 :    if (!i12) {
   20755          48 :     i10 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i7 | 0) | 0) | 0;
   20756          48 :     if (i10 >>> 0 <= 31) {
   20757          48 :      i11 = i10 + 1 | 0;
   20758          48 :      i12 = 31 - i10 | 0;
   20759          48 :      i8 = i10 - 31 >> 31;
   20760          48 :      i9 = i11;
   20761          48 :      i6 = i5 >>> (i11 >>> 0) & i8 | i7 << i12;
   20762          48 :      i8 = i7 >>> (i11 >>> 0) & i8;
   20763          48 :      i11 = 0;
   20764          48 :      i7 = i5 << i12;
   20765          48 :      break;
   20766          48 :     }
   20767          48 :     if ((i1 | 0) == 0) {
   20768          48 :      i11 = 0;
   20769          48 :      i12 = 0;
   20770          48 :      return (tempRet0 = i11, i12) | 0;
   20771          48 :     }
   20772          48 :     HEAP32[i1 >> 2] = i6 | 0;
   20773          48 :     HEAP32[i1 + 4 >> 2] = i9 | i8 & 0;
   20774          48 :     i11 = 0;
   20775          48 :     i12 = 0;
   20776          48 :     return (tempRet0 = i11, i12) | 0;
   20777          48 :    }
   20778          48 :    i11 = i10 - 1 | 0;
   20779          48 :    if ((i11 & i10 | 0) != 0) {
   20780          48 :     i12 = (_llvm_ctlz_i32(i10 | 0) | 0) + 33 - (_llvm_ctlz_i32(i7 | 0) | 0) | 0;
   20781          48 :     i15 = 64 - i12 | 0;
   20782          48 :     i10 = 32 - i12 | 0;
   20783          48 :     i13 = i10 >> 31;
   20784          48 :     i14 = i12 - 32 | 0;
   20785          48 :     i8 = i14 >> 31;
   20786          48 :     i9 = i12;
   20787          48 :     i6 = i10 - 1 >> 31 & i7 >>> (i14 >>> 0) | (i7 << i10 | i5 >>> (i12 >>> 0)) & i8;
   20788          48 :     i8 = i8 & i7 >>> (i12 >>> 0);
   20789          48 :     i11 = i5 << i15 & i13;
   20790          48 :     i7 = (i7 << i15 | i5 >>> (i14 >>> 0)) & i13 | i5 << i10 & i12 - 33 >> 31;
   20791          48 :     break;
   20792          48 :    }
   20793          48 :    if ((i1 | 0) != 0) {
   20794          48 :     HEAP32[i1 >> 2] = i11 & i5;
   20795          48 :     HEAP32[i1 + 4 >> 2] = 0;
   20796          48 :    }
   20797          48 :    if ((i10 | 0) == 1) {
   20798          48 :     i14 = i9 | i8 & 0;
   20799          48 :     i15 = i6 | 0 | 0;
   20800          48 :     return (tempRet0 = i14, i15) | 0;
   20801          48 :    } else {
   20802          48 :     i15 = _llvm_cttz_i32(i10 | 0) | 0;
   20803          48 :     i14 = i7 >>> (i15 >>> 0) | 0;
   20804          48 :     i15 = i7 << 32 - i15 | i5 >>> (i15 >>> 0) | 0;
   20805          48 :     return (tempRet0 = i14, i15) | 0;
   20806          48 :    }
   20807          48 :   } else {
   20808          48 :    if (i12) {
   20809          48 :     if ((i1 | 0) != 0) {
   20810          48 :      HEAP32[i1 >> 2] = (i7 >>> 0) % (i10 >>> 0);
   20811          48 :      HEAP32[i1 + 4 >> 2] = 0;
   20812          48 :     }
   20813          48 :     i14 = 0;
   20814          48 :     i15 = (i7 >>> 0) / (i10 >>> 0) >>> 0;
   20815          48 :     return (tempRet0 = i14, i15) | 0;
   20816          48 :    }
   20817          48 :    if ((i5 | 0) == 0) {
   20818          48 :     if ((i1 | 0) != 0) {
   20819          48 :      HEAP32[i1 >> 2] = 0;
   20820          48 :      HEAP32[i1 + 4 >> 2] = (i7 >>> 0) % (i11 >>> 0);
   20821          48 :     }
   20822          48 :     i14 = 0;
   20823          48 :     i15 = (i7 >>> 0) / (i11 >>> 0) >>> 0;
   20824          48 :     return (tempRet0 = i14, i15) | 0;
   20825          48 :    }
   20826          48 :    i10 = i11 - 1 | 0;
   20827          48 :    if ((i10 & i11 | 0) == 0) {
   20828          48 :     if ((i1 | 0) != 0) {
   20829          48 :      HEAP32[i1 >> 2] = i6 | 0;
   20830          48 :      HEAP32[i1 + 4 >> 2] = i10 & i7 | i8 & 0;
   20831          48 :     }
   20832          48 :     i14 = 0;
   20833          48 :     i15 = i7 >>> ((_llvm_cttz_i32(i11 | 0) | 0) >>> 0);
   20834          48 :     return (tempRet0 = i14, i15) | 0;
   20835          48 :    }
   20836          48 :    i10 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i7 | 0) | 0) | 0;
   20837          48 :    if (i10 >>> 0 <= 30) {
   20838          48 :     i8 = i10 + 1 | 0;
   20839          48 :     i15 = 31 - i10 | 0;
   20840          48 :     i9 = i8;
   20841          48 :     i6 = i7 << i15 | i5 >>> (i8 >>> 0);
   20842          48 :     i8 = i7 >>> (i8 >>> 0);
   20843          48 :     i11 = 0;
   20844          48 :     i7 = i5 << i15;
   20845          48 :     break;
   20846          48 :    }
   20847          48 :    if ((i1 | 0) == 0) {
   20848          48 :     i14 = 0;
   20849          48 :     i15 = 0;
   20850          48 :     return (tempRet0 = i14, i15) | 0;
   20851          48 :    }
   20852          48 :    HEAP32[i1 >> 2] = i6 | 0;
   20853          48 :    HEAP32[i1 + 4 >> 2] = i9 | i8 & 0;
   20854          48 :    i14 = 0;
   20855          48 :    i15 = 0;
   20856          48 :    return (tempRet0 = i14, i15) | 0;
   20857          48 :   }
   20858          48 :  } while (0);
   20859          48 :  if ((i9 | 0) == 0) {
   20860          48 :   i12 = i6;
   20861          48 :   i2 = 0;
   20862          48 :   i6 = 0;
   20863          48 :  } else {
   20864          48 :   i2 = i2 | 0 | 0;
   20865          48 :   i3 = i3 | i4 & 0;
   20866          48 :   i4 = _i64Add(i2, i3, -1, -1) | 0;
   20867          48 :   i5 = tempRet0;
   20868          48 :   i10 = i8;
   20869          48 :   i12 = i6;
   20870          48 :   i6 = 0;
   20871          48 :   while (1) {
   20872          48 :    i8 = i11 >>> 31 | i7 << 1;
   20873          48 :    i11 = i6 | i11 << 1;
   20874          48 :    i7 = i12 << 1 | i7 >>> 31 | 0;
   20875          48 :    i10 = i12 >>> 31 | i10 << 1 | 0;
   20876          48 :    _i64Subtract(i4, i5, i7, i10) | 0;
   20877          48 :    i12 = tempRet0;
   20878          48 :    i15 = i12 >> 31 | ((i12 | 0) < 0 ? -1 : 0) << 1;
   20879          48 :    i6 = i15 & 1;
   20880          48 :    i12 = _i64Subtract(i7, i10, i15 & i2, (((i12 | 0) < 0 ? -1 : 0) >> 31 | ((i12 | 0) < 0 ? -1 : 0) << 1) & i3) | 0;
   20881          48 :    i10 = tempRet0;
   20882          48 :    i9 = i9 - 1 | 0;
   20883          48 :    if ((i9 | 0) == 0) {
   20884          48 :     break;
   20885          48 :    } else {
   20886          48 :     i7 = i8;
   20887          48 :    }
   20888          48 :   }
   20889          48 :   i7 = i8;
   20890          48 :   i8 = i10;
   20891          48 :   i2 = 0;
   20892          48 :  }
   20893          48 :  i3 = 0;
   20894          48 :  if ((i1 | 0) != 0) {
   20895          48 :   HEAP32[i1 >> 2] = i12;
   20896          48 :   HEAP32[i1 + 4 >> 2] = i8;
   20897          48 :  }
   20898          48 :  i14 = (i11 | 0) >>> 31 | (i7 | i3) << 1 | (i3 << 1 | i11 >>> 31) & 0 | i2;
   20899          48 :  i15 = (i11 << 1 | 0 >>> 31) & -2 | i6;
   20900          48 :  return (tempRet0 = i14, i15) | 0;
   20901          48 : }
   20902          21 : function _leaveblock(i1) {
   20903          21 :  i1 = i1 | 0;
   20904          21 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
   20905          21 :  i3 = STACKTOP;
   20906          21 :  STACKTOP = STACKTOP + 16 | 0;
   20907          21 :  i5 = i3;
   20908          21 :  i7 = i1 + 16 | 0;
   20909          21 :  i4 = HEAP32[i7 >> 2] | 0;
   20910          21 :  i2 = i1 + 12 | 0;
   20911          21 :  i6 = HEAP32[i2 >> 2] | 0;
   20912          21 :  if ((HEAP32[i4 >> 2] | 0) != 0 ? (HEAP8[i4 + 9 | 0] | 0) != 0 : 0) {
   20913          21 :   i16 = _luaK_jump(i1) | 0;
   20914          21 :   _luaK_patchclose(i1, i16, HEAPU8[i4 + 8 | 0] | 0);
   20915          21 :   _luaK_patchtohere(i1, i16);
   20916          21 :  }
   20917          21 :  L5 : do {
   20918          21 :   if ((HEAP8[i4 + 10 | 0] | 0) != 0) {
   20919          21 :    i15 = i6 + 52 | 0;
   20920          21 :    i14 = _luaS_new(HEAP32[i15 >> 2] | 0, 6304) | 0;
   20921          21 :    i13 = i6 + 64 | 0;
   20922          21 :    i16 = HEAP32[i13 >> 2] | 0;
   20923          21 :    i10 = i16 + 24 | 0;
   20924          21 :    i8 = i6 + 48 | 0;
   20925          21 :    i11 = HEAP32[(HEAP32[i8 >> 2] | 0) + 20 >> 2] | 0;
   20926          21 :    i12 = i16 + 28 | 0;
   20927          21 :    i9 = HEAP32[i12 >> 2] | 0;
   20928          21 :    i16 = i16 + 32 | 0;
   20929          21 :    if ((i9 | 0) < (HEAP32[i16 >> 2] | 0)) {
   20930          21 :     i15 = HEAP32[i10 >> 2] | 0;
   20931          21 :    } else {
   20932          21 :     i15 = _luaM_growaux_(HEAP32[i15 >> 2] | 0, HEAP32[i10 >> 2] | 0, i16, 16, 32767, 6312) | 0;
   20933          21 :     HEAP32[i10 >> 2] = i15;
   20934          21 :    }
   20935          21 :    HEAP32[i15 + (i9 << 4) >> 2] = i14;
   20936          21 :    i16 = HEAP32[i10 >> 2] | 0;
   20937          21 :    HEAP32[i16 + (i9 << 4) + 8 >> 2] = 0;
   20938          21 :    HEAP8[i16 + (i9 << 4) + 12 | 0] = HEAP8[(HEAP32[i8 >> 2] | 0) + 46 | 0] | 0;
   20939          21 :    HEAP32[(HEAP32[i10 >> 2] | 0) + (i9 << 4) + 4 >> 2] = i11;
   20940          21 :    HEAP32[i12 >> 2] = (HEAP32[i12 >> 2] | 0) + 1;
   20941          21 :    i10 = HEAP32[i13 >> 2] | 0;
   20942          21 :    i9 = (HEAP32[i10 + 24 >> 2] | 0) + (i9 << 4) | 0;
   20943          21 :    i11 = HEAP16[(HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] | 0) + 6 >> 1] | 0;
   20944          21 :    i8 = i10 + 16 | 0;
   20945          21 :    if ((i11 | 0) < (HEAP32[i8 >> 2] | 0)) {
   20946          21 :     i10 = i10 + 12 | 0;
   20947          21 :     do {
   20948          21 :      while (1) {
   20949          21 :       if ((_luaS_eqstr(HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 4) >> 2] | 0, HEAP32[i9 >> 2] | 0) | 0) == 0) {
   20950          21 :        break;
   20951          21 :       }
   20952          21 :       _closegoto(i6, i11, i9);
   20953          21 :       if ((i11 | 0) >= (HEAP32[i8 >> 2] | 0)) {
   20954          21 :        break L5;
   20955          21 :       }
   20956          21 :      }
   20957          21 :      i11 = i11 + 1 | 0;
   20958          21 :     } while ((i11 | 0) < (HEAP32[i8 >> 2] | 0));
   20959          21 :    }
   20960          21 :   }
   20961          21 :  } while (0);
   20962          21 :  HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
   20963          21 :  i7 = i4 + 8 | 0;
   20964          21 :  i9 = HEAP8[i7] | 0;
   20965          21 :  i10 = i1 + 46 | 0;
   20966          21 :  i8 = (HEAP32[i2 >> 2] | 0) + 64 | 0;
   20967          21 :  i14 = (HEAP32[i8 >> 2] | 0) + 4 | 0;
   20968          21 :  HEAP32[i14 >> 2] = (i9 & 255) - (HEAPU8[i10] | 0) + (HEAP32[i14 >> 2] | 0);
   20969          21 :  i14 = HEAP8[i10] | 0;
   20970          21 :  if ((i14 & 255) > (i9 & 255)) {
   20971          21 :   i13 = i1 + 20 | 0;
   20972          21 :   i11 = i1 + 40 | 0;
   20973          21 :   i12 = (HEAP32[i1 >> 2] | 0) + 24 | 0;
   20974          21 :   do {
   20975          21 :    i16 = HEAP32[i13 >> 2] | 0;
   20976          21 :    i14 = i14 + -1 << 24 >> 24;
   20977          21 :    HEAP8[i10] = i14;
   20978          21 :    HEAP32[(HEAP32[i12 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[i8 >> 2] >> 2] | 0) + ((HEAP32[i11 >> 2] | 0) + (i14 & 255) << 1) >> 1] | 0) * 12 | 0) + 8 >> 2] = i16;
   20979          21 :    i14 = HEAP8[i10] | 0;
   20980          21 :   } while ((i14 & 255) > (i9 & 255));
   20981          21 :  }
   20982          21 :  HEAP8[i1 + 48 | 0] = i14;
   20983          21 :  i10 = HEAP32[i6 + 64 >> 2] | 0;
   20984          21 :  HEAP32[i10 + 28 >> 2] = HEAP16[i4 + 4 >> 1] | 0;
   20985          21 :  i9 = HEAP16[i4 + 6 >> 1] | 0;
   20986          21 :  if ((HEAP32[i4 >> 2] | 0) == 0) {
   20987          21 :   if ((i9 | 0) >= (HEAP32[i10 + 16 >> 2] | 0)) {
   20988          21 :    STACKTOP = i3;
   20989          21 :    return;
   20990          21 :   }
   20991          21 :   i10 = HEAP32[i10 + 12 >> 2] | 0;
   20992          21 :   i11 = HEAP32[i10 + (i9 << 4) >> 2] | 0;
   20993          21 :   if ((HEAP8[i11 + 4 | 0] | 0) != 4) {
   20994          21 :    i16 = 6200;
   20995          21 :    i15 = i6 + 52 | 0;
   20996          21 :    i15 = HEAP32[i15 >> 2] | 0;
   20997          21 :    i14 = i11 + 16 | 0;
   20998          21 :    i13 = i10 + (i9 << 4) + 8 | 0;
   20999          21 :    i13 = HEAP32[i13 >> 2] | 0;
   21000          21 :    HEAP32[i5 >> 2] = i14;
   21001          21 :    i14 = i5 + 4 | 0;
   21002          21 :    HEAP32[i14 >> 2] = i13;
   21003          21 :    i16 = _luaO_pushfstring(i15, i16, i5) | 0;
   21004          21 :    _semerror(i6, i16);
   21005          21 :   }
   21006          21 :   i16 = (HEAP8[i11 + 6 | 0] | 0) != 0 ? 6160 : 6200;
   21007          21 :   i15 = i6 + 52 | 0;
   21008          21 :   i15 = HEAP32[i15 >> 2] | 0;
   21009          21 :   i14 = i11 + 16 | 0;
   21010          21 :   i13 = i10 + (i9 << 4) + 8 | 0;
   21011          21 :   i13 = HEAP32[i13 >> 2] | 0;
   21012          21 :   HEAP32[i5 >> 2] = i14;
   21013          21 :   i14 = i5 + 4 | 0;
   21014          21 :   HEAP32[i14 >> 2] = i13;
   21015          21 :   i16 = _luaO_pushfstring(i15, i16, i5) | 0;
   21016          21 :   _semerror(i6, i16);
   21017          21 :  }
   21018          21 :  i6 = HEAP32[i8 >> 2] | 0;
   21019          21 :  i5 = i6 + 16 | 0;
   21020          21 :  if ((i9 | 0) >= (HEAP32[i5 >> 2] | 0)) {
   21021          21 :   STACKTOP = i3;
   21022          21 :   return;
   21023          21 :  }
   21024          21 :  i6 = i6 + 12 | 0;
   21025          21 :  i4 = i4 + 9 | 0;
   21026          21 :  do {
   21027          21 :   i10 = HEAP32[i6 >> 2] | 0;
   21028          21 :   i8 = i10 + (i9 << 4) + 12 | 0;
   21029          21 :   i11 = HEAP8[i7] | 0;
   21030          21 :   i12 = i11 & 255;
   21031          21 :   if ((HEAPU8[i8] | 0) > (i11 & 255)) {
   21032          21 :    if ((HEAP8[i4] | 0) != 0) {
   21033          21 :     _luaK_patchclose(i1, HEAP32[i10 + (i9 << 4) + 4 >> 2] | 0, i12);
   21034          21 :     i11 = HEAP8[i7] | 0;
   21035          21 :    }
   21036          21 :    HEAP8[i8] = i11;
   21037          21 :   }
   21038          21 :   i9 = ((_findlabel(HEAP32[i2 >> 2] | 0, i9) | 0) == 0) + i9 | 0;
   21039          21 :  } while ((i9 | 0) < (HEAP32[i5 >> 2] | 0));
   21040          21 :  STACKTOP = i3;
   21041          21 :  return;
   21042          21 : }
   21043           1 : function _getobjname(i3, i7, i9, i2) {
   21044           0 :  i3 = i3 | 0;
   21045           0 :  i7 = i7 | 0;
   21046           0 :  i9 = i9 | 0;
   21047           0 :  i2 = i2 | 0;
   21048           0 :  var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   21049           0 :  i1 = STACKTOP;
   21050           0 :  i4 = i3 + 12 | 0;
   21051           0 :  L1 : while (1) {
   21052           0 :   i13 = _luaF_getlocalname(i3, i9 + 1 | 0, i7) | 0;
   21053           0 :   HEAP32[i2 >> 2] = i13;
   21054           0 :   if ((i13 | 0) != 0) {
   21055           0 :    i2 = 2040;
   21056           0 :    i4 = 42;
   21057           0 :    break;
   21058           0 :   }
   21059           0 :   if ((i7 | 0) <= 0) {
   21060           0 :    i2 = 0;
   21061           0 :    i4 = 42;
   21062           0 :    break;
   21063           0 :   }
   21064           0 :   i6 = HEAP32[i4 >> 2] | 0;
   21065           0 :   i8 = 0;
   21066           0 :   i5 = -1;
   21067           0 :   do {
   21068           0 :    i12 = HEAP32[i6 + (i8 << 2) >> 2] | 0;
   21069           0 :    i13 = i12 & 63;
   21070           0 :    i11 = i12 >>> 6 & 255;
   21071           0 :    switch (i13 | 0) {
   21072           0 :    case 27:
   21073           0 :     {
   21074           0 :      i10 = i8;
   21075           0 :      i5 = (i11 | 0) == (i9 | 0) ? i8 : i5;
   21076           0 :      break;
   21077           0 :     }
   21078           0 :    case 30:
   21079           0 :    case 29:
   21080           0 :     {
   21081           0 :      i10 = i8;
   21082           0 :      i5 = (i11 | 0) > (i9 | 0) ? i5 : i8;
   21083           0 :      break;
   21084           0 :     }
   21085           0 :    case 23:
   21086           0 :     {
   21087           0 :      i10 = (i12 >>> 14) + -131071 | 0;
   21088           0 :      i13 = i8 + 1 + i10 | 0;
   21089           0 :      i10 = ((i8 | 0) >= (i13 | 0) | (i13 | 0) > (i7 | 0) ? 0 : i10) + i8 | 0;
   21090           0 :      break;
   21091           0 :     }
   21092           0 :    case 4:
   21093           0 :     {
   21094           0 :      if ((i11 | 0) > (i9 | 0)) {
   21095           0 :       i10 = i8;
   21096           0 :      } else {
   21097           0 :       i10 = i8;
   21098           0 :       i5 = (i11 + (i12 >>> 23) | 0) < (i9 | 0) ? i5 : i8;
   21099           0 :      }
   21100           0 :      break;
   21101           0 :     }
   21102           0 :    case 34:
   21103           0 :     {
   21104           0 :      i10 = i8;
   21105           0 :      i5 = (i11 + 2 | 0) > (i9 | 0) ? i5 : i8;
   21106           0 :      break;
   21107           0 :     }
   21108           0 :    default:
   21109           0 :     {
   21110           0 :      i10 = i8;
   21111           0 :      i5 = (HEAP8[5584 + i13 | 0] & 64) != 0 & (i11 | 0) == (i9 | 0) ? i8 : i5;
   21112           0 :     }
   21113           0 :    }
   21114           0 :    i8 = i10 + 1 | 0;
   21115           0 :   } while ((i8 | 0) < (i7 | 0));
   21116           0 :   if ((i5 | 0) == -1) {
   21117           0 :    i2 = 0;
   21118           0 :    i4 = 42;
   21119           0 :    break;
   21120           0 :   }
   21121           0 :   i7 = HEAP32[i6 + (i5 << 2) >> 2] | 0;
   21122           0 :   i9 = i7 & 63;
   21123           0 :   switch (i9 | 0) {
   21124           0 :   case 0:
   21125           0 :    {
   21126           0 :     break;
   21127           0 :    }
   21128           0 :   case 7:
   21129           0 :   case 6:
   21130           0 :    {
   21131           0 :     i4 = 17;
   21132           0 :     break L1;
   21133           0 :    }
   21134           0 :   case 5:
   21135           0 :    {
   21136           0 :     i4 = 29;
   21137           0 :     break L1;
   21138           0 :    }
   21139           0 :   case 1:
   21140           0 :    {
   21141           0 :     i4 = 32;
   21142           0 :     break L1;
   21143           0 :    }
   21144           0 :   case 2:
   21145           0 :    {
   21146           0 :     i4 = 33;
   21147           0 :     break L1;
   21148           0 :    }
   21149           0 :   case 12:
   21150           0 :    {
   21151           0 :     i4 = 36;
   21152           0 :     break L1;
   21153           0 :    }
   21154           0 :   default:
   21155           0 :    {
   21156           0 :     i2 = 0;
   21157           0 :     i4 = 42;
   21158           0 :     break L1;
   21159           0 :    }
   21160           0 :   }
   21161           0 :   i9 = i7 >>> 23;
   21162           0 :   if (i9 >>> 0 < (i7 >>> 6 & 255) >>> 0) {
   21163           0 :    i7 = i5;
   21164           0 :   } else {
   21165           0 :    i2 = 0;
   21166           0 :    i4 = 42;
   21167           0 :    break;
   21168           0 :   }
   21169           0 :  }
   21170           0 :  if ((i4 | 0) == 17) {
   21171           0 :   i6 = i7 >>> 14;
   21172           0 :   i8 = i6 & 511;
   21173           0 :   i7 = i7 >>> 23;
   21174           0 :   if ((i9 | 0) != 7) {
   21175           0 :    i7 = HEAP32[(HEAP32[i3 + 28 >> 2] | 0) + (i7 << 3) >> 2] | 0;
   21176           0 :    if ((i7 | 0) == 0) {
   21177           0 :     i7 = 2104;
   21178           0 :    } else {
   21179           0 :     i7 = i7 + 16 | 0;
   21180           0 :    }
   21181           0 :   } else {
   21182           0 :    i7 = _luaF_getlocalname(i3, i7 + 1 | 0, i5) | 0;
   21183           0 :   }
   21184           0 :   if ((i6 & 256 | 0) == 0) {
   21185           0 :    i3 = _getobjname(i3, i5, i8, i2) | 0;
   21186           0 :    if (!((i3 | 0) != 0 ? (HEAP8[i3] | 0) == 99 : 0)) {
   21187           0 :     i4 = 26;
   21188           0 :    }
   21189           0 :   } else {
   21190           0 :    i5 = i6 & 255;
   21191           0 :    i3 = HEAP32[i3 + 8 >> 2] | 0;
   21192           0 :    if ((HEAP32[i3 + (i5 << 4) + 8 >> 2] & 15 | 0) == 4) {
   21193           0 :     HEAP32[i2 >> 2] = (HEAP32[i3 + (i5 << 4) >> 2] | 0) + 16;
   21194           0 :    } else {
   21195           0 :     i4 = 26;
   21196           0 :    }
   21197           0 :   }
   21198           0 :   if ((i4 | 0) == 26) {
   21199           0 :    HEAP32[i2 >> 2] = 2104;
   21200           0 :   }
   21201           0 :   if ((i7 | 0) == 0) {
   21202           0 :    i13 = 2064;
   21203           0 :    STACKTOP = i1;
   21204           0 :    return i13 | 0;
   21205           0 :   }
   21206           0 :   i13 = (_strcmp(i7, 2048) | 0) == 0;
   21207           0 :   i13 = i13 ? 2056 : 2064;
   21208           0 :   STACKTOP = i1;
   21209           0 :   return i13 | 0;
   21210           0 :  } else if ((i4 | 0) == 29) {
   21211           0 :   i3 = HEAP32[(HEAP32[i3 + 28 >> 2] | 0) + (i7 >>> 23 << 3) >> 2] | 0;
   21212           0 :   if ((i3 | 0) == 0) {
   21213           0 :    i3 = 2104;
   21214           0 :   } else {
   21215           0 :    i3 = i3 + 16 | 0;
   21216           0 :   }
   21217           0 :   HEAP32[i2 >> 2] = i3;
   21218           0 :   i13 = 2072;
   21219           0 :   STACKTOP = i1;
   21220           0 :   return i13 | 0;
   21221           0 :  } else if ((i4 | 0) == 32) {
   21222           0 :   i5 = i7 >>> 14;
   21223           0 :  } else if ((i4 | 0) == 33) {
   21224           0 :   i5 = (HEAP32[i6 + (i5 + 1 << 2) >> 2] | 0) >>> 6;
   21225           0 :  } else if ((i4 | 0) == 36) {
   21226           0 :   i4 = i7 >>> 14;
   21227           0 :   if ((i4 & 256 | 0) == 0) {
   21228           0 :    i3 = _getobjname(i3, i5, i4 & 511, i2) | 0;
   21229           0 :    if ((i3 | 0) != 0 ? (HEAP8[i3] | 0) == 99 : 0) {
   21230           0 :     i13 = 2096;
   21231           0 :     STACKTOP = i1;
   21232           0 :     return i13 | 0;
   21233           0 :    }
   21234           0 :   } else {
   21235           0 :    i4 = i4 & 255;
   21236           0 :    i3 = HEAP32[i3 + 8 >> 2] | 0;
   21237           0 :    if ((HEAP32[i3 + (i4 << 4) + 8 >> 2] & 15 | 0) == 4) {
   21238           0 :     HEAP32[i2 >> 2] = (HEAP32[i3 + (i4 << 4) >> 2] | 0) + 16;
   21239           0 :     i13 = 2096;
   21240           0 :     STACKTOP = i1;
   21241           0 :     return i13 | 0;
   21242           0 :    }
   21243           0 :   }
   21244           0 :   HEAP32[i2 >> 2] = 2104;
   21245           0 :   i13 = 2096;
   21246           0 :   STACKTOP = i1;
   21247           0 :   return i13 | 0;
   21248           0 :  } else if ((i4 | 0) == 42) {
   21249           0 :   STACKTOP = i1;
   21250           0 :   return i2 | 0;
   21251           0 :  }
   21252           0 :  i3 = HEAP32[i3 + 8 >> 2] | 0;
   21253           0 :  if ((HEAP32[i3 + (i5 << 4) + 8 >> 2] & 15 | 0) != 4) {
   21254           0 :   i13 = 0;
   21255           0 :   STACKTOP = i1;
   21256           0 :   return i13 | 0;
   21257           0 :  }
   21258           0 :  HEAP32[i2 >> 2] = (HEAP32[i3 + (i5 << 4) >> 2] | 0) + 16;
   21259           0 :  i13 = 2080;
   21260           0 :  STACKTOP = i1;
   21261           0 :  return i13 | 0;
   21262           1 : }
   21263           9 : function _assignment(i2, i16, i5) {
   21264           9 :  i2 = i2 | 0;
   21265           9 :  i16 = i16 | 0;
   21266           9 :  i5 = i5 | 0;
   21267           9 :  var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
   21268           9 :  i3 = STACKTOP;
   21269           9 :  STACKTOP = STACKTOP + 80 | 0;
   21270           9 :  i6 = i3 + 56 | 0;
   21271           9 :  i1 = i3 + 32 | 0;
   21272           9 :  i8 = i3;
   21273           9 :  i4 = i16 + 8 | 0;
   21274           9 :  if (!(((HEAP32[i4 >> 2] | 0) + -7 | 0) >>> 0 < 3)) {
   21275           9 :   _luaX_syntaxerror(i2, 6344);
   21276           9 :  }
   21277           9 :  i13 = i2 + 16 | 0;
   21278           9 :  i14 = HEAP32[i13 >> 2] | 0;
   21279           9 :  do {
   21280           9 :   if ((i14 | 0) == 44) {
   21281           9 :    _luaX_next(i2);
   21282           9 :    HEAP32[i8 >> 2] = i16;
   21283           9 :    i14 = i8 + 8 | 0;
   21284           9 :    _suffixedexp(i2, i14);
   21285           9 :    i15 = i2 + 48 | 0;
   21286           9 :    if ((HEAP32[i14 >> 2] | 0) != 9 ? (i10 = HEAP32[i15 >> 2] | 0, i11 = HEAP8[i10 + 48 | 0] | 0, i9 = i11 & 255, (i16 | 0) != 0) : 0) {
   21287           9 :     i13 = i8 + 16 | 0;
   21288           9 :     i12 = i11 & 255;
   21289           9 :     i18 = 0;
   21290           9 :     do {
   21291           9 :      if ((HEAP32[i16 + 8 >> 2] | 0) == 9) {
   21292           9 :       i17 = i16 + 16 | 0;
   21293           9 :       i19 = i17 + 3 | 0;
   21294           9 :       i20 = HEAPU8[i19] | 0;
   21295           9 :       i21 = HEAP32[i14 >> 2] | 0;
   21296           9 :       if ((i20 | 0) == (i21 | 0)) {
   21297           9 :        i21 = i17 + 2 | 0;
   21298           9 :        if ((HEAPU8[i21] | 0) == (HEAP32[i13 >> 2] | 0)) {
   21299           9 :         HEAP8[i19] = 7;
   21300           9 :         HEAP8[i21] = i11;
   21301           9 :         i20 = HEAP32[i14 >> 2] | 0;
   21302           9 :         i18 = 1;
   21303           9 :        }
   21304           9 :       } else {
   21305           9 :        i20 = i21;
   21306           9 :       }
   21307           9 :       if ((i20 | 0) == 7 ? (HEAP16[i17 >> 1] | 0) == (HEAP32[i13 >> 2] | 0) : 0) {
   21308           9 :        HEAP16[i17 >> 1] = i12;
   21309           9 :        i18 = 1;
   21310           9 :       }
   21311           9 :      }
   21312           9 :      i16 = HEAP32[i16 >> 2] | 0;
   21313           9 :     } while ((i16 | 0) != 0);
   21314           9 :     if ((i18 | 0) != 0) {
   21315           9 :      _luaK_codeABC(i10, (HEAP32[i14 >> 2] | 0) == 7 ? 0 : 5, i9, HEAP32[i13 >> 2] | 0, 0) | 0;
   21316           9 :      _luaK_reserveregs(i10, 1);
   21317           9 :     }
   21318           9 :    }
   21319           9 :    i9 = HEAP32[i15 >> 2] | 0;
   21320           9 :    if (((HEAPU16[(HEAP32[i2 + 52 >> 2] | 0) + 38 >> 1] | 0) + i5 | 0) <= 200) {
   21321           9 :     _assignment(i2, i8, i5 + 1 | 0);
   21322           9 :     i7 = i1;
   21323           9 :     break;
   21324           9 :    }
   21325           9 :    i8 = i9 + 12 | 0;
   21326           9 :    i5 = HEAP32[(HEAP32[i8 >> 2] | 0) + 52 >> 2] | 0;
   21327           9 :    i9 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0;
   21328           9 :    if ((i9 | 0) == 0) {
   21329           9 :     i20 = 6552;
   21330           9 :     HEAP32[i6 >> 2] = 6360;
   21331           9 :     i21 = i6 + 4 | 0;
   21332           9 :     HEAP32[i21 >> 2] = 200;
   21333           9 :     i21 = i6 + 8 | 0;
   21334           9 :     HEAP32[i21 >> 2] = i20;
   21335           9 :     i21 = _luaO_pushfstring(i5, 6592, i6) | 0;
   21336           9 :     i20 = HEAP32[i8 >> 2] | 0;
   21337           9 :     _luaX_syntaxerror(i20, i21);
   21338           9 :    }
   21339           9 :    HEAP32[i6 >> 2] = i9;
   21340           9 :    i20 = _luaO_pushfstring(i5, 6568, i6) | 0;
   21341           9 :    HEAP32[i6 >> 2] = 6360;
   21342           9 :    i21 = i6 + 4 | 0;
   21343           9 :    HEAP32[i21 >> 2] = 200;
   21344           9 :    i21 = i6 + 8 | 0;
   21345           9 :    HEAP32[i21 >> 2] = i20;
   21346           9 :    i21 = _luaO_pushfstring(i5, 6592, i6) | 0;
   21347           9 :    i20 = HEAP32[i8 >> 2] | 0;
   21348           9 :    _luaX_syntaxerror(i20, i21);
   21349           9 :   } else if ((i14 | 0) == 61) {
   21350           9 :    _luaX_next(i2);
   21351           9 :    _subexpr(i2, i1, 0) | 0;
   21352           9 :    i6 = i2 + 48 | 0;
   21353           9 :    if ((HEAP32[i13 >> 2] | 0) == 44) {
   21354           9 :     i9 = 1;
   21355           9 :     do {
   21356           9 :      _luaX_next(i2);
   21357           9 :      _luaK_exp2nextreg(HEAP32[i6 >> 2] | 0, i1);
   21358           9 :      _subexpr(i2, i1, 0) | 0;
   21359           9 :      i9 = i9 + 1 | 0;
   21360           9 :     } while ((HEAP32[i13 >> 2] | 0) == 44);
   21361           9 :    } else {
   21362           9 :     i9 = 1;
   21363           9 :    }
   21364           9 :    i8 = HEAP32[i6 >> 2] | 0;
   21365           9 :    if ((i9 | 0) == (i5 | 0)) {
   21366           9 :     _luaK_setoneret(i8, i1);
   21367           9 :     _luaK_storevar(HEAP32[i6 >> 2] | 0, i4, i1);
   21368           9 :     STACKTOP = i3;
   21369           9 :     return;
   21370           9 :    }
   21371           9 :    i7 = i5 - i9 | 0;
   21372           9 :    i10 = HEAP32[i1 >> 2] | 0;
   21373           9 :    if ((i10 | 0) == 13 | (i10 | 0) == 12) {
   21374           9 :     i10 = i7 + 1 | 0;
   21375           9 :     i10 = (i10 | 0) < 0 ? 0 : i10;
   21376           9 :     _luaK_setreturns(i8, i1, i10);
   21377           9 :     if ((i10 | 0) > 1) {
   21378           9 :      _luaK_reserveregs(i8, i10 + -1 | 0);
   21379           9 :     }
   21380           9 :    } else if ((i10 | 0) == 0) {
   21381           9 :     i12 = 30;
   21382           9 :    } else {
   21383           9 :     _luaK_exp2nextreg(i8, i1);
   21384           9 :     i12 = 30;
   21385           9 :    }
   21386           9 :    if ((i12 | 0) == 30 ? (i7 | 0) > 0 : 0) {
   21387           9 :     i21 = HEAPU8[i8 + 48 | 0] | 0;
   21388           9 :     _luaK_reserveregs(i8, i7);
   21389           9 :     _luaK_nil(i8, i21, i7);
   21390           9 :    }
   21391           9 :    if ((i9 | 0) > (i5 | 0)) {
   21392           9 :     i21 = (HEAP32[i6 >> 2] | 0) + 48 | 0;
   21393           9 :     HEAP8[i21] = i7 + (HEAPU8[i21] | 0);
   21394           9 :     i7 = i1;
   21395           9 :    } else {
   21396           9 :     i7 = i1;
   21397           9 :    }
   21398           9 :   } else {
   21399           9 :    _error_expected(i2, 61);
   21400           9 :   }
   21401           9 :  } while (0);
   21402           9 :  i21 = HEAP32[i2 + 48 >> 2] | 0;
   21403           9 :  i20 = (HEAPU8[i21 + 48 | 0] | 0) + -1 | 0;
   21404           9 :  HEAP32[i1 + 16 >> 2] = -1;
   21405           9 :  HEAP32[i1 + 20 >> 2] = -1;
   21406           9 :  HEAP32[i7 >> 2] = 6;
   21407           9 :  HEAP32[i1 + 8 >> 2] = i20;
   21408           9 :  _luaK_storevar(i21, i4, i1);
   21409           9 :  STACKTOP = i3;
   21410           9 :  return;
   21411           9 : }
   21412           1 : function _str_find_aux(i3, i7) {
   21413           0 :  i3 = i3 | 0;
   21414           0 :  i7 = i7 | 0;
   21415           0 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   21416           0 :  i1 = STACKTOP;
   21417           0 :  STACKTOP = STACKTOP + 288 | 0;
   21418           0 :  i9 = i1 + 284 | 0;
   21419           0 :  i5 = i1 + 280 | 0;
   21420           0 :  i4 = i1;
   21421           0 :  i2 = _luaL_checklstring(i3, 1, i9) | 0;
   21422           0 :  i8 = _luaL_checklstring(i3, 2, i5) | 0;
   21423           0 :  i12 = _luaL_optinteger(i3, 3, 1) | 0;
   21424           0 :  i10 = HEAP32[i9 >> 2] | 0;
   21425           0 :  if (!((i12 | 0) > -1)) {
   21426           0 :   if (i10 >>> 0 < (0 - i12 | 0) >>> 0) {
   21427           0 :    i12 = 1;
   21428           0 :   } else {
   21429           0 :    i12 = i12 + 1 + i10 | 0;
   21430           0 :    i6 = 4;
   21431           0 :   }
   21432           0 :  } else {
   21433           0 :   i6 = 4;
   21434           0 :  }
   21435           0 :  if ((i6 | 0) == 4) {
   21436           0 :   if ((i12 | 0) != 0) {
   21437           0 :    if (i12 >>> 0 > (i10 + 1 | 0) >>> 0) {
   21438           0 :     _lua_pushnil(i3);
   21439           0 :     i13 = 1;
   21440           0 :     STACKTOP = i1;
   21441           0 :     return i13 | 0;
   21442           0 :    }
   21443           0 :   } else {
   21444           0 :    i12 = 1;
   21445           0 :   }
   21446           0 :  }
   21447           0 :  i7 = (i7 | 0) != 0;
   21448           0 :  L10 : do {
   21449           0 :   if (i7) {
   21450           0 :    i13 = (_lua_toboolean(i3, 4) | 0) == 0;
   21451           0 :    i10 = HEAP32[i5 >> 2] | 0;
   21452           0 :    if (i13) {
   21453           0 :     i11 = 0;
   21454           0 :     do {
   21455           0 :      i13 = i8 + i11 | 0;
   21456           0 :      if ((_strpbrk(i13, 7512) | 0) != 0) {
   21457           0 :       i6 = 20;
   21458           0 :       break L10;
   21459           0 :      }
   21460           0 :      i11 = i11 + 1 + (_strlen(i13 | 0) | 0) | 0;
   21461           0 :     } while (!(i11 >>> 0 > i10 >>> 0));
   21462           0 :    }
   21463           0 :    i11 = i2 + (i12 + -1) | 0;
   21464           0 :    i9 = (HEAP32[i9 >> 2] | 0) - i12 + 1 | 0;
   21465           0 :    L17 : do {
   21466           0 :     if ((i10 | 0) == 0) {
   21467           0 :      if ((i11 | 0) == 0) {
   21468           0 :       break L10;
   21469           0 :      }
   21470           0 :     } else {
   21471           0 :      if (i10 >>> 0 > i9 >>> 0) {
   21472           0 :       break L10;
   21473           0 :      }
   21474           0 :      i4 = i10 + -1 | 0;
   21475           0 :      if ((i4 | 0) == (i9 | 0)) {
   21476           0 :       break L10;
   21477           0 :      }
   21478           0 :      i7 = HEAP8[i8] | 0;
   21479           0 :      i8 = i8 + 1 | 0;
   21480           0 :      i9 = i9 - i4 | 0;
   21481           0 :      i12 = i11;
   21482           0 :      while (1) {
   21483           0 :       i11 = _memchr(i12, i7, i9) | 0;
   21484           0 :       if ((i11 | 0) == 0) {
   21485           0 :        break L10;
   21486           0 :       }
   21487           0 :       i10 = i11 + 1 | 0;
   21488           0 :       if ((_memcmp(i10, i8, i4) | 0) == 0) {
   21489           0 :        break L17;
   21490           0 :       }
   21491           0 :       i11 = i10;
   21492           0 :       i9 = i12 + i9 | 0;
   21493           0 :       if ((i9 | 0) == (i11 | 0)) {
   21494           0 :        break L10;
   21495           0 :       } else {
   21496           0 :        i9 = i9 - i11 | 0;
   21497           0 :        i12 = i10;
   21498           0 :       }
   21499           0 :      }
   21500           0 :     }
   21501           0 :    } while (0);
   21502           0 :    i13 = i11 - i2 | 0;
   21503           0 :    _lua_pushinteger(i3, i13 + 1 | 0);
   21504           0 :    _lua_pushinteger(i3, i13 + (HEAP32[i5 >> 2] | 0) | 0);
   21505           0 :    i13 = 2;
   21506           0 :    STACKTOP = i1;
   21507           0 :    return i13 | 0;
   21508           0 :   } else {
   21509           0 :    i6 = 20;
   21510           0 :   }
   21511           0 :  } while (0);
   21512           0 :  L28 : do {
   21513           0 :   if ((i6 | 0) == 20) {
   21514           0 :    i6 = i2 + (i12 + -1) | 0;
   21515           0 :    i10 = (HEAP8[i8] | 0) == 94;
   21516           0 :    if (i10) {
   21517           0 :     i12 = (HEAP32[i5 >> 2] | 0) + -1 | 0;
   21518           0 :     HEAP32[i5 >> 2] = i12;
   21519           0 :     i8 = i8 + 1 | 0;
   21520           0 :    } else {
   21521           0 :     i12 = HEAP32[i5 >> 2] | 0;
   21522           0 :    }
   21523           0 :    i5 = i4 + 16 | 0;
   21524           0 :    HEAP32[i5 >> 2] = i3;
   21525           0 :    HEAP32[i4 >> 2] = 200;
   21526           0 :    HEAP32[i4 + 4 >> 2] = i2;
   21527           0 :    i11 = i4 + 8 | 0;
   21528           0 :    HEAP32[i11 >> 2] = i2 + (HEAP32[i9 >> 2] | 0);
   21529           0 :    HEAP32[i4 + 12 >> 2] = i8 + i12;
   21530           0 :    i9 = i4 + 20 | 0;
   21531           0 :    L34 : do {
   21532           0 :     if (i10) {
   21533           0 :      HEAP32[i9 >> 2] = 0;
   21534           0 :      i8 = _match(i4, i6, i8) | 0;
   21535           0 :      if ((i8 | 0) == 0) {
   21536           0 :       break L28;
   21537           0 :      }
   21538           0 :     } else {
   21539           0 :      while (1) {
   21540           0 :       HEAP32[i9 >> 2] = 0;
   21541           0 :       i10 = _match(i4, i6, i8) | 0;
   21542           0 :       if ((i10 | 0) != 0) {
   21543           0 :        i8 = i10;
   21544           0 :        break L34;
   21545           0 :       }
   21546           0 :       if (!(i6 >>> 0 < (HEAP32[i11 >> 2] | 0) >>> 0)) {
   21547           0 :        break L28;
   21548           0 :       }
   21549           0 :       i6 = i6 + 1 | 0;
   21550           0 :      }
   21551           0 :     }
   21552           0 :    } while (0);
   21553           0 :    if (i7) {
   21554           0 :     _lua_pushinteger(i3, 1 - i2 + i6 | 0);
   21555           0 :     _lua_pushinteger(i3, i8 - i2 | 0);
   21556           0 :     i2 = HEAP32[i9 >> 2] | 0;
   21557           0 :     _luaL_checkstack(HEAP32[i5 >> 2] | 0, i2, 7200);
   21558           0 :     if ((i2 | 0) > 0) {
   21559           0 :      i3 = 0;
   21560           0 :      do {
   21561           0 :       _push_onecapture(i4, i3, 0, 0);
   21562           0 :       i3 = i3 + 1 | 0;
   21563           0 :      } while ((i3 | 0) != (i2 | 0));
   21564           0 :     }
   21565           0 :     i13 = i2 + 2 | 0;
   21566           0 :     STACKTOP = i1;
   21567           0 :     return i13 | 0;
   21568           0 :    } else {
   21569           0 :     i3 = HEAP32[i9 >> 2] | 0;
   21570           0 :     i2 = (i3 | 0) != 0 | (i6 | 0) == 0 ? i3 : 1;
   21571           0 :     _luaL_checkstack(HEAP32[i5 >> 2] | 0, i2, 7200);
   21572           0 :     if ((i2 | 0) > 0) {
   21573           0 :      i3 = 0;
   21574           0 :     } else {
   21575           0 :      i13 = i3;
   21576           0 :      STACKTOP = i1;
   21577           0 :      return i13 | 0;
   21578           0 :     }
   21579           0 :     do {
   21580           0 :      _push_onecapture(i4, i3, i6, i8);
   21581           0 :      i3 = i3 + 1 | 0;
   21582           0 :     } while ((i3 | 0) != (i2 | 0));
   21583           0 :     STACKTOP = i1;
   21584           0 :     return i2 | 0;
   21585           0 :    }
   21586           0 :   }
   21587           0 :  } while (0);
   21588           0 :  _lua_pushnil(i3);
   21589           0 :  i13 = 1;
   21590           0 :  STACKTOP = i1;
   21591           0 :  return i13 | 0;
   21592           1 : }
   21593           1 : function _luaO_pushvfstring(i2, i13, i10) {
   21594           1 :  i2 = i2 | 0;
   21595           1 :  i13 = i13 | 0;
   21596           1 :  i10 = i10 | 0;
   21597           1 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0;
   21598           1 :  i3 = STACKTOP;
   21599           1 :  STACKTOP = STACKTOP + 48 | 0;
   21600           1 :  i7 = i3;
   21601           1 :  i9 = i3 + 32 | 0;
   21602           1 :  i8 = i3 + 8 | 0;
   21603           1 :  i14 = _strchr(i13, 37) | 0;
   21604           1 :  i6 = i2 + 24 | 0;
   21605           1 :  i4 = i2 + 8 | 0;
   21606           1 :  i15 = HEAP32[i4 >> 2] | 0;
   21607           1 :  i17 = (HEAP32[i6 >> 2] | 0) - i15 | 0;
   21608           1 :  L1 : do {
   21609           1 :   if ((i14 | 0) == 0) {
   21610           1 :    i5 = i13;
   21611           1 :    i11 = i17;
   21612           1 :    i12 = i15;
   21613           1 :    i1 = 0;
   21614           1 :   } else {
   21615           1 :    i16 = 0;
   21616           1 :    L3 : while (1) {
   21617           1 :     if ((i17 | 0) < 48) {
   21618           1 :      _luaD_growstack(i2, 2);
   21619           1 :      i15 = HEAP32[i4 >> 2] | 0;
   21620           1 :     }
   21621           1 :     HEAP32[i4 >> 2] = i15 + 16;
   21622           1 :     i13 = _luaS_newlstr(i2, i13, i14 - i13 | 0) | 0;
   21623           1 :     HEAP32[i15 >> 2] = i13;
   21624           1 :     HEAP32[i15 + 8 >> 2] = HEAPU8[i13 + 4 | 0] | 64;
   21625           1 :     i13 = HEAP8[i14 + 1 | 0] | 0;
   21626           1 :     switch (i13 | 0) {
   21627           1 :     case 115:
   21628           1 :      {
   21629           1 :       i17 = HEAP32[i10 >> 2] | 0;
   21630           1 :       i13 = HEAP32[i17 >> 2] | 0;
   21631           1 :       HEAP32[i10 >> 2] = i17 + 4;
   21632           1 :       i13 = (i13 | 0) == 0 ? 5480 : i13;
   21633           1 :       i15 = _strlen(i13 | 0) | 0;
   21634           1 :       i17 = HEAP32[i4 >> 2] | 0;
   21635           1 :       HEAP32[i4 >> 2] = i17 + 16;
   21636           1 :       i15 = _luaS_newlstr(i2, i13, i15) | 0;
   21637           1 :       HEAP32[i17 >> 2] = i15;
   21638           1 :       HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
   21639           1 :       break;
   21640           1 :      }
   21641           1 :     case 100:
   21642           1 :      {
   21643           1 :       i17 = HEAP32[i4 >> 2] | 0;
   21644           1 :       HEAP32[i4 >> 2] = i17 + 16;
   21645           1 :       i13 = HEAP32[i10 >> 2] | 0;
   21646           1 :       i15 = HEAP32[i13 >> 2] | 0;
   21647           1 :       HEAP32[i10 >> 2] = i13 + 4;
   21648           1 :       HEAPF64[i17 >> 3] = +(i15 | 0);
   21649           1 :       HEAP32[i17 + 8 >> 2] = 3;
   21650           1 :       break;
   21651           1 :      }
   21652           1 :     case 37:
   21653           1 :      {
   21654           1 :       i17 = HEAP32[i4 >> 2] | 0;
   21655           1 :       HEAP32[i4 >> 2] = i17 + 16;
   21656           1 :       i15 = _luaS_newlstr(i2, 5496, 1) | 0;
   21657           1 :       HEAP32[i17 >> 2] = i15;
   21658           1 :       HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
   21659           1 :       break;
   21660           1 :      }
   21661           1 :     case 99:
   21662           1 :      {
   21663           1 :       i15 = HEAP32[i10 >> 2] | 0;
   21664           1 :       i17 = HEAP32[i15 >> 2] | 0;
   21665           1 :       HEAP32[i10 >> 2] = i15 + 4;
   21666           1 :       HEAP8[i9] = i17;
   21667           1 :       i17 = HEAP32[i4 >> 2] | 0;
   21668           1 :       HEAP32[i4 >> 2] = i17 + 16;
   21669           1 :       i15 = _luaS_newlstr(i2, i9, 1) | 0;
   21670           1 :       HEAP32[i17 >> 2] = i15;
   21671           1 :       HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
   21672           1 :       break;
   21673           1 :      }
   21674           1 :     case 102:
   21675           1 :      {
   21676           1 :       i17 = HEAP32[i4 >> 2] | 0;
   21677           1 :       HEAP32[i4 >> 2] = i17 + 16;
   21678           1 :       i15 = HEAP32[i10 >> 2] | 0;
   21679           1 :       d18 = +HEAPF64[i15 >> 3];
   21680           1 :       HEAP32[i10 >> 2] = i15 + 8;
   21681           1 :       HEAPF64[i17 >> 3] = d18;
   21682           1 :       HEAP32[i17 + 8 >> 2] = 3;
   21683           1 :       break;
   21684           1 :      }
   21685           1 :     case 112:
   21686           1 :      {
   21687           1 :       i17 = HEAP32[i10 >> 2] | 0;
   21688           1 :       i15 = HEAP32[i17 >> 2] | 0;
   21689           1 :       HEAP32[i10 >> 2] = i17 + 4;
   21690           1 :       HEAP32[i7 >> 2] = i15;
   21691           1 :       i15 = _sprintf(i8 | 0, 5488, i7 | 0) | 0;
   21692           1 :       i17 = HEAP32[i4 >> 2] | 0;
   21693           1 :       HEAP32[i4 >> 2] = i17 + 16;
   21694           1 :       i15 = _luaS_newlstr(i2, i8, i15) | 0;
   21695           1 :       HEAP32[i17 >> 2] = i15;
   21696           1 :       HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
   21697           1 :       break;
   21698           1 :      }
   21699           1 :     default:
   21700           1 :      {
   21701           1 :       break L3;
   21702           1 :      }
   21703           1 :     }
   21704           1 :     i16 = i16 + 2 | 0;
   21705           1 :     i13 = i14 + 2 | 0;
   21706           1 :     i14 = _strchr(i13, 37) | 0;
   21707           1 :     i15 = HEAP32[i4 >> 2] | 0;
   21708           1 :     i17 = (HEAP32[i6 >> 2] | 0) - i15 | 0;
   21709           1 :     if ((i14 | 0) == 0) {
   21710           1 :      i5 = i13;
   21711           1 :      i11 = i17;
   21712           1 :      i12 = i15;
   21713           1 :      i1 = i16;
   21714           1 :      break L1;
   21715           1 :     }
   21716           1 :    }
   21717           1 :    HEAP32[i7 >> 2] = i13;
   21718           1 :    _luaG_runerror(i2, 5504, i7);
   21719           1 :   }
   21720           1 :  } while (0);
   21721           1 :  if ((i11 | 0) < 32) {
   21722           1 :   _luaD_growstack(i2, 1);
   21723           1 :   i12 = HEAP32[i4 >> 2] | 0;
   21724           1 :  }
   21725           1 :  i17 = _strlen(i5 | 0) | 0;
   21726           1 :  HEAP32[i4 >> 2] = i12 + 16;
   21727           1 :  i17 = _luaS_newlstr(i2, i5, i17) | 0;
   21728           1 :  HEAP32[i12 >> 2] = i17;
   21729           1 :  HEAP32[i12 + 8 >> 2] = HEAPU8[i17 + 4 | 0] | 64;
   21730           1 :  if ((i1 | 0) <= 0) {
   21731           1 :   i17 = HEAP32[i4 >> 2] | 0;
   21732           1 :   i17 = i17 + -16 | 0;
   21733           1 :   i17 = HEAP32[i17 >> 2] | 0;
   21734           1 :   i17 = i17 + 16 | 0;
   21735           1 :   STACKTOP = i3;
   21736           1 :   return i17 | 0;
   21737           1 :  }
   21738           1 :  _luaV_concat(i2, i1 | 1);
   21739           1 :  i17 = HEAP32[i4 >> 2] | 0;
   21740           1 :  i17 = i17 + -16 | 0;
   21741           1 :  i17 = HEAP32[i17 >> 2] | 0;
   21742           1 :  i17 = i17 + 16 | 0;
   21743           1 :  STACKTOP = i3;
   21744           1 :  return i17 | 0;
   21745           1 : }
   21746           1 : function _luaH_getn(i6) {
   21747           1 :  i6 = i6 | 0;
   21748           1 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, i13 = 0;
   21749           1 :  i1 = STACKTOP;
   21750           1 :  STACKTOP = STACKTOP + 16 | 0;
   21751           1 :  i2 = i1;
   21752           1 :  i3 = i6 + 28 | 0;
   21753           1 :  i12 = HEAP32[i3 >> 2] | 0;
   21754           1 :  if ((i12 | 0) != 0 ? (i4 = HEAP32[i6 + 12 >> 2] | 0, (HEAP32[i4 + (i12 + -1 << 4) + 8 >> 2] | 0) == 0) : 0) {
   21755           1 :   if (i12 >>> 0 > 1) {
   21756           1 :    i10 = 0;
   21757           1 :   } else {
   21758           1 :    i13 = 0;
   21759           1 :    STACKTOP = i1;
   21760           1 :    return i13 | 0;
   21761           1 :   }
   21762           1 :   do {
   21763           1 :    i2 = (i10 + i12 | 0) >>> 1;
   21764           1 :    i3 = (HEAP32[i4 + (i2 + -1 << 4) + 8 >> 2] | 0) == 0;
   21765           1 :    i12 = i3 ? i2 : i12;
   21766           1 :    i10 = i3 ? i10 : i2;
   21767           1 :   } while ((i12 - i10 | 0) >>> 0 > 1);
   21768           1 :   STACKTOP = i1;
   21769           1 :   return i10 | 0;
   21770           1 :  }
   21771           1 :  i4 = i6 + 16 | 0;
   21772           1 :  if ((HEAP32[i4 >> 2] | 0) == 8016) {
   21773           1 :   i13 = i12;
   21774           1 :   STACKTOP = i1;
   21775           1 :   return i13 | 0;
   21776           1 :  }
   21777           1 :  i5 = i6 + 12 | 0;
   21778           1 :  i6 = i6 + 7 | 0;
   21779           1 :  i9 = i2 + 4 | 0;
   21780           1 :  i8 = i12 + 1 | 0;
   21781           1 :  i13 = i12;
   21782           1 :  i10 = i12;
   21783           1 :  while (1) {
   21784           1 :   i12 = i8 + -1 | 0;
   21785           1 :   L15 : do {
   21786           1 :    if (i12 >>> 0 < i13 >>> 0) {
   21787           1 :     i12 = (HEAP32[i5 >> 2] | 0) + (i12 << 4) | 0;
   21788           1 :    } else {
   21789           1 :     d11 = +(i8 | 0);
   21790           1 :     HEAPF64[i2 >> 3] = d11 + 1.0;
   21791           1 :     i13 = (HEAP32[i9 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
   21792           1 :     if ((i13 | 0) < 0) {
   21793           1 :      i12 = 0 - i13 | 0;
   21794           1 :      i13 = (i13 | 0) == (i12 | 0) ? 0 : i12;
   21795           1 :     }
   21796           1 :     i12 = (HEAP32[i4 >> 2] | 0) + (((i13 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
   21797           1 :     while (1) {
   21798           1 :      if ((HEAP32[i12 + 24 >> 2] | 0) == 3 ? +HEAPF64[i12 + 16 >> 3] == d11 : 0) {
   21799           1 :       break;
   21800           1 :      }
   21801           1 :      i12 = HEAP32[i12 + 28 >> 2] | 0;
   21802           1 :      if ((i12 | 0) == 0) {
   21803           1 :       i12 = 5192;
   21804           1 :       break L15;
   21805           1 :      }
   21806           1 :     }
   21807           1 :    }
   21808           1 :   } while (0);
   21809           1 :   if ((HEAP32[i12 + 8 >> 2] | 0) == 0) {
   21810           1 :    break;
   21811           1 :   }
   21812           1 :   i10 = i8 << 1;
   21813           1 :   if (i10 >>> 0 > 2147483645) {
   21814           1 :    i7 = 21;
   21815           1 :    break;
   21816           1 :   }
   21817           1 :   i12 = i8;
   21818           1 :   i8 = i10;
   21819           1 :   i13 = HEAP32[i3 >> 2] | 0;
   21820           1 :   i10 = i12;
   21821           1 :  }
   21822           1 :  if ((i7 | 0) == 21) {
   21823           1 :   i8 = i2 + 4 | 0;
   21824           1 :   i7 = 1;
   21825           1 :   while (1) {
   21826           1 :    i10 = i7 + -1 | 0;
   21827           1 :    L34 : do {
   21828           1 :     if (i10 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0) {
   21829           1 :      i9 = (HEAP32[i5 >> 2] | 0) + (i10 << 4) | 0;
   21830           1 :     } else {
   21831           1 :      d11 = +(i7 | 0);
   21832           1 :      HEAPF64[i2 >> 3] = d11 + 1.0;
   21833           1 :      i9 = (HEAP32[i8 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
   21834           1 :      if ((i9 | 0) < 0) {
   21835           1 :       i12 = 0 - i9 | 0;
   21836           1 :       i9 = (i9 | 0) == (i12 | 0) ? 0 : i12;
   21837           1 :      }
   21838           1 :      i9 = (HEAP32[i4 >> 2] | 0) + (((i9 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
   21839           1 :      while (1) {
   21840           1 :       if ((HEAP32[i9 + 24 >> 2] | 0) == 3 ? +HEAPF64[i9 + 16 >> 3] == d11 : 0) {
   21841           1 :        break;
   21842           1 :       }
   21843           1 :       i9 = HEAP32[i9 + 28 >> 2] | 0;
   21844           1 :       if ((i9 | 0) == 0) {
   21845           1 :        i9 = 5192;
   21846           1 :        break L34;
   21847           1 :       }
   21848           1 :      }
   21849           1 :     }
   21850           1 :    } while (0);
   21851           1 :    if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
   21852           1 :     break;
   21853           1 :    }
   21854           1 :    i7 = i7 + 1 | 0;
   21855           1 :   }
   21856           1 :   STACKTOP = i1;
   21857           1 :   return i10 | 0;
   21858           1 :  }
   21859           1 :  if (!((i8 - i10 | 0) >>> 0 > 1)) {
   21860           1 :   i13 = i10;
   21861           1 :   STACKTOP = i1;
   21862           1 :   return i13 | 0;
   21863           1 :  }
   21864           1 :  i7 = i2 + 4 | 0;
   21865           1 :  do {
   21866           1 :   i9 = (i8 + i10 | 0) >>> 1;
   21867           1 :   i12 = i9 + -1 | 0;
   21868           1 :   L55 : do {
   21869           1 :    if (i12 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0) {
   21870           1 :     i12 = (HEAP32[i5 >> 2] | 0) + (i12 << 4) | 0;
   21871           1 :    } else {
   21872           1 :     d11 = +(i9 | 0);
   21873           1 :     HEAPF64[i2 >> 3] = d11 + 1.0;
   21874           1 :     i13 = (HEAP32[i7 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
   21875           1 :     if ((i13 | 0) < 0) {
   21876           1 :      i12 = 0 - i13 | 0;
   21877           1 :      i13 = (i13 | 0) == (i12 | 0) ? 0 : i12;
   21878           1 :     }
   21879           1 :     i12 = (HEAP32[i4 >> 2] | 0) + (((i13 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
   21880           1 :     while (1) {
   21881           1 :      if ((HEAP32[i12 + 24 >> 2] | 0) == 3 ? +HEAPF64[i12 + 16 >> 3] == d11 : 0) {
   21882           1 :       break;
   21883           1 :      }
   21884           1 :      i12 = HEAP32[i12 + 28 >> 2] | 0;
   21885           1 :      if ((i12 | 0) == 0) {
   21886           1 :       i12 = 5192;
   21887           1 :       break L55;
   21888           1 :      }
   21889           1 :     }
   21890           1 :    }
   21891           1 :   } while (0);
   21892           1 :   i12 = (HEAP32[i12 + 8 >> 2] | 0) == 0;
   21893           1 :   i8 = i12 ? i9 : i8;
   21894           1 :   i10 = i12 ? i10 : i9;
   21895           1 :  } while ((i8 - i10 | 0) >>> 0 > 1);
   21896           1 :  STACKTOP = i1;
   21897           1 :  return i10 | 0;
   21898           1 : }
   21899           1 : function _lua_resume(i4, i3, i7) {
   21900           0 :  i4 = i4 | 0;
   21901           0 :  i3 = i3 | 0;
   21902           0 :  i7 = i7 | 0;
   21903           0 :  var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
   21904           0 :  i1 = STACKTOP;
   21905           0 :  if ((i3 | 0) == 0) {
   21906           0 :   i5 = 1;
   21907           0 :  } else {
   21908           0 :   i5 = (HEAPU16[i3 + 38 >> 1] | 0) + 1 & 65535;
   21909           0 :  }
   21910           0 :  i3 = i4 + 38 | 0;
   21911           0 :  HEAP16[i3 >> 1] = i5;
   21912           0 :  i5 = i4 + 36 | 0;
   21913           0 :  HEAP16[i5 >> 1] = 0;
   21914           0 :  i6 = i4 + 8 | 0;
   21915           0 :  i13 = _luaD_rawrunprotected(i4, 4, (HEAP32[i6 >> 2] | 0) + (0 - i7 << 4) | 0) | 0;
   21916           0 :  if ((i13 | 0) == -1) {
   21917           0 :   i18 = 2;
   21918           0 :   HEAP16[i5 >> 1] = 1;
   21919           0 :   i17 = HEAP16[i3 >> 1] | 0;
   21920           0 :   i17 = i17 + -1 << 16 >> 16;
   21921           0 :   HEAP16[i3 >> 1] = i17;
   21922           0 :   STACKTOP = i1;
   21923           0 :   return i18 | 0;
   21924           0 :  }
   21925           0 :  if (!(i13 >>> 0 > 1)) {
   21926           0 :   i18 = i13;
   21927           0 :   HEAP16[i5 >> 1] = 1;
   21928           0 :   i17 = HEAP16[i3 >> 1] | 0;
   21929           0 :   i17 = i17 + -1 << 16 >> 16;
   21930           0 :   HEAP16[i3 >> 1] = i17;
   21931           0 :   STACKTOP = i1;
   21932           0 :   return i18 | 0;
   21933           0 :  }
   21934           0 :  i7 = i4 + 16 | 0;
   21935           0 :  i12 = i4 + 28 | 0;
   21936           0 :  i11 = i4 + 41 | 0;
   21937           0 :  i10 = i4 + 68 | 0;
   21938           0 :  i9 = i4 + 32 | 0;
   21939           0 :  i8 = i4 + 12 | 0;
   21940           0 :  L10 : while (1) {
   21941           0 :   i15 = HEAP32[i7 >> 2] | 0;
   21942           0 :   if ((i15 | 0) == 0) {
   21943           0 :    break;
   21944           0 :   }
   21945           0 :   while (1) {
   21946           0 :    i14 = i15 + 18 | 0;
   21947           0 :    if (!((HEAP8[i14] & 16) == 0)) {
   21948           0 :     break;
   21949           0 :    }
   21950           0 :    i15 = HEAP32[i15 + 8 >> 2] | 0;
   21951           0 :    if ((i15 | 0) == 0) {
   21952           0 :     break L10;
   21953           0 :    }
   21954           0 :   }
   21955           0 :   i16 = HEAP32[i12 >> 2] | 0;
   21956           0 :   i17 = HEAP32[i15 + 20 >> 2] | 0;
   21957           0 :   i18 = i16 + i17 | 0;
   21958           0 :   _luaF_close(i4, i18);
   21959           0 :   if ((i13 | 0) == 4) {
   21960           0 :    i19 = HEAP32[(HEAP32[i8 >> 2] | 0) + 180 >> 2] | 0;
   21961           0 :    HEAP32[i18 >> 2] = i19;
   21962           0 :    HEAP32[i16 + (i17 + 8) >> 2] = HEAPU8[i19 + 4 | 0] | 0 | 64;
   21963           0 :   } else if ((i13 | 0) == 6) {
   21964           0 :    i19 = _luaS_newlstr(i4, 2424, 23) | 0;
   21965           0 :    HEAP32[i18 >> 2] = i19;
   21966           0 :    HEAP32[i16 + (i17 + 8) >> 2] = HEAPU8[i19 + 4 | 0] | 0 | 64;
   21967           0 :   } else {
   21968           0 :    i19 = HEAP32[i6 >> 2] | 0;
   21969           0 :    i21 = i19 + -16 | 0;
   21970           0 :    i20 = HEAP32[i21 + 4 >> 2] | 0;
   21971           0 :    HEAP32[i18 >> 2] = HEAP32[i21 >> 2];
   21972           0 :    HEAP32[i18 + 4 >> 2] = i20;
   21973           0 :    HEAP32[i16 + (i17 + 8) >> 2] = HEAP32[i19 + -8 >> 2];
   21974           0 :   }
   21975           0 :   i17 = i16 + (i17 + 16) | 0;
   21976           0 :   HEAP32[i6 >> 2] = i17;
   21977           0 :   HEAP32[i7 >> 2] = i15;
   21978           0 :   HEAP8[i11] = HEAP8[i15 + 36 | 0] | 0;
   21979           0 :   HEAP16[i5 >> 1] = 0;
   21980           0 :   if ((i15 | 0) != 0) {
   21981           0 :    i16 = i15;
   21982           0 :    do {
   21983           0 :     i18 = HEAP32[i16 + 4 >> 2] | 0;
   21984           0 :     i17 = i17 >>> 0 < i18 >>> 0 ? i18 : i17;
   21985           0 :     i16 = HEAP32[i16 + 8 >> 2] | 0;
   21986           0 :    } while ((i16 | 0) != 0);
   21987           0 :   }
   21988           0 :   i16 = i17 - (HEAP32[i12 >> 2] | 0) | 0;
   21989           0 :   i17 = (i16 >> 4) + 1 | 0;
   21990           0 :   i17 = ((i17 | 0) / 8 | 0) + 10 + i17 | 0;
   21991           0 :   i17 = (i17 | 0) > 1e6 ? 1e6 : i17;
   21992           0 :   if ((i16 | 0) <= 15999984 ? (i17 | 0) < (HEAP32[i9 >> 2] | 0) : 0) {
   21993           0 :    _luaD_reallocstack(i4, i17);
   21994           0 :   }
   21995           0 :   HEAP32[i10 >> 2] = HEAP32[i15 + 32 >> 2];
   21996           0 :   HEAP8[i14] = HEAPU8[i14] | 0 | 32;
   21997           0 :   HEAP8[i15 + 37 | 0] = i13;
   21998           0 :   i13 = _luaD_rawrunprotected(i4, 5, 0) | 0;
   21999           0 :   if (!(i13 >>> 0 > 1)) {
   22000           0 :    i2 = 24;
   22001           0 :    break;
   22002           0 :   }
   22003           0 :  }
   22004           0 :  if ((i2 | 0) == 24) {
   22005           0 :   HEAP16[i5 >> 1] = 1;
   22006           0 :   i21 = HEAP16[i3 >> 1] | 0;
   22007           0 :   i21 = i21 + -1 << 16 >> 16;
   22008           0 :   HEAP16[i3 >> 1] = i21;
   22009           0 :   STACKTOP = i1;
   22010           0 :   return i13 | 0;
   22011           0 :  }
   22012           0 :  HEAP8[i4 + 6 | 0] = i13;
   22013           0 :  i2 = HEAP32[i6 >> 2] | 0;
   22014           0 :  if ((i13 | 0) == 4) {
   22015           0 :   i21 = HEAP32[(HEAP32[i8 >> 2] | 0) + 180 >> 2] | 0;
   22016           0 :   HEAP32[i2 >> 2] = i21;
   22017           0 :   HEAP32[i2 + 8 >> 2] = HEAPU8[i21 + 4 | 0] | 0 | 64;
   22018           0 :  } else if ((i13 | 0) == 6) {
   22019           0 :   i21 = _luaS_newlstr(i4, 2424, 23) | 0;
   22020           0 :   HEAP32[i2 >> 2] = i21;
   22021           0 :   HEAP32[i2 + 8 >> 2] = HEAPU8[i21 + 4 | 0] | 0 | 64;
   22022           0 :  } else {
   22023           0 :   i19 = i2 + -16 | 0;
   22024           0 :   i20 = HEAP32[i19 + 4 >> 2] | 0;
   22025           0 :   i21 = i2;
   22026           0 :   HEAP32[i21 >> 2] = HEAP32[i19 >> 2];
   22027           0 :   HEAP32[i21 + 4 >> 2] = i20;
   22028           0 :   HEAP32[i2 + 8 >> 2] = HEAP32[i2 + -8 >> 2];
   22029           0 :  }
   22030           0 :  i21 = i2 + 16 | 0;
   22031           0 :  HEAP32[i6 >> 2] = i21;
   22032           0 :  HEAP32[(HEAP32[i7 >> 2] | 0) + 4 >> 2] = i21;
   22033           0 :  i21 = i13;
   22034           0 :  HEAP16[i5 >> 1] = 1;
   22035           0 :  i20 = HEAP16[i3 >> 1] | 0;
   22036           0 :  i20 = i20 + -1 << 16 >> 16;
   22037           0 :  HEAP16[i3 >> 1] = i20;
   22038           0 :  STACKTOP = i1;
   22039           0 :  return i21 | 0;
   22040           1 : }
   22041          10 : function _luaK_goiftrue(i1, i3) {
   22042          10 :  i1 = i1 | 0;
   22043          10 :  i3 = i3 | 0;
   22044          10 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
   22045          10 :  i2 = STACKTOP;
   22046          10 :  _luaK_dischargevars(i1, i3);
   22047          10 :  i12 = HEAP32[i3 >> 2] | 0;
   22048          10 :  do {
   22049          10 :   if ((i12 | 0) == 10) {
   22050          10 :    i9 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
   22051          10 :    i5 = i3 + 8 | 0;
   22052          10 :    i8 = HEAP32[i5 >> 2] | 0;
   22053          10 :    i7 = i9 + (i8 << 2) | 0;
   22054          10 :    if (!((i8 | 0) > 0 ? (i10 = i9 + (i8 + -1 << 2) | 0, i6 = HEAP32[i10 >> 2] | 0, (HEAP8[5584 + (i6 & 63) | 0] | 0) < 0) : 0)) {
   22055          10 :     i10 = i7;
   22056          10 :     i6 = HEAP32[i7 >> 2] | 0;
   22057          10 :    }
   22058          10 :    HEAP32[i10 >> 2] = ((i6 & 16320 | 0) == 0) << 6 | i6 & -16321;
   22059          10 :    i5 = HEAP32[i5 >> 2] | 0;
   22060          10 :    i8 = 18;
   22061          10 :   } else if (!((i12 | 0) == 2 | (i12 | 0) == 5 | (i12 | 0) == 4)) {
   22062          10 :    i5 = i3 + 8 | 0;
   22063          10 :    if ((i12 | 0) == 6) {
   22064          10 :     i8 = 14;
   22065          10 :    } else if ((i12 | 0) == 11 ? (i11 = HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i5 >> 2] << 2) >> 2] | 0, (i11 & 63 | 0) == 20) : 0) {
   22066          10 :     i5 = i1 + 20 | 0;
   22067          10 :     HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + -1;
   22068          10 :     i5 = _condjump(i1, 27, i11 >>> 23, 0, 1) | 0;
   22069          10 :     i8 = 18;
   22070          10 :     break;
   22071          10 :    } else {
   22072          10 :     i8 = 9;
   22073          10 :    }
   22074          10 :    if ((i8 | 0) == 9) {
   22075          10 :     i12 = i1 + 48 | 0;
   22076          10 :     i10 = HEAP8[i12] | 0;
   22077          10 :     i11 = (i10 & 255) + 1 | 0;
   22078          10 :     i6 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
   22079          10 :     do {
   22080          10 :      if (i11 >>> 0 > (HEAPU8[i6] | 0) >>> 0) {
   22081          10 :       if (i11 >>> 0 > 249) {
   22082          10 :        _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
   22083          10 :       } else {
   22084          10 :        HEAP8[i6] = i11;
   22085          10 :        i9 = HEAP8[i12] | 0;
   22086          10 :        break;
   22087          10 :       }
   22088          10 :      } else {
   22089          10 :       i9 = i10;
   22090          10 :      }
   22091          10 :     } while (0);
   22092          10 :     i11 = (i9 & 255) + 1 | 0;
   22093          10 :     HEAP8[i12] = i11;
   22094          10 :     _discharge2reg(i1, i3, (i11 & 255) + -1 | 0);
   22095          10 :     if ((HEAP32[i3 >> 2] | 0) == 6) {
   22096          10 :      i8 = 14;
   22097          10 :     }
   22098          10 :    }
   22099          10 :    if (((i8 | 0) == 14 ? (i7 = HEAP32[i5 >> 2] | 0, (i7 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0) <= (i7 | 0) : 0) {
   22100          10 :     i12 = i1 + 48 | 0;
   22101          10 :     HEAP8[i12] = (HEAP8[i12] | 0) + -1 << 24 >> 24;
   22102          10 :    }
   22103          10 :    i5 = _condjump(i1, 28, 255, HEAP32[i5 >> 2] | 0, 0) | 0;
   22104          10 :    i8 = 18;
   22105          10 :   }
   22106          10 :  } while (0);
   22107          10 :  do {
   22108          10 :   if ((i8 | 0) == 18 ? (i4 = i3 + 20 | 0, !((i5 | 0) == -1)) : 0) {
   22109          10 :    i8 = HEAP32[i4 >> 2] | 0;
   22110          10 :    if ((i8 | 0) == -1) {
   22111          10 :     HEAP32[i4 >> 2] = i5;
   22112          10 :     break;
   22113          10 :    }
   22114          10 :    i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
   22115          10 :    while (1) {
   22116          10 :     i7 = i4 + (i8 << 2) | 0;
   22117          10 :     i6 = HEAP32[i7 >> 2] | 0;
   22118          10 :     i9 = (i6 >>> 14) + -131071 | 0;
   22119          10 :     if ((i9 | 0) == -1) {
   22120          10 :      break;
   22121          10 :     }
   22122          10 :     i9 = i8 + 1 + i9 | 0;
   22123          10 :     if ((i9 | 0) == -1) {
   22124          10 :      break;
   22125          10 :     } else {
   22126          10 :      i8 = i9;
   22127          10 :     }
   22128          10 :    }
   22129          10 :    i4 = i5 + ~i8 | 0;
   22130          10 :    if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
   22131          10 :     _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
   22132          10 :    } else {
   22133          10 :     HEAP32[i7 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
   22134          10 :     break;
   22135          10 :    }
   22136          10 :   }
   22137          10 :  } while (0);
   22138          10 :  i3 = i3 + 16 | 0;
   22139          10 :  i4 = HEAP32[i3 >> 2] | 0;
   22140          10 :  HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2];
   22141          10 :  i5 = i1 + 28 | 0;
   22142          10 :  if ((i4 | 0) == -1) {
   22143          10 :   HEAP32[i3 >> 2] = -1;
   22144          10 :   STACKTOP = i2;
   22145          10 :   return;
   22146          10 :  }
   22147          10 :  i8 = HEAP32[i5 >> 2] | 0;
   22148          10 :  if ((i8 | 0) == -1) {
   22149          10 :   HEAP32[i5 >> 2] = i4;
   22150          10 :   HEAP32[i3 >> 2] = -1;
   22151          10 :   STACKTOP = i2;
   22152          10 :   return;
   22153          10 :  }
   22154          10 :  i7 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
   22155          10 :  while (1) {
   22156          10 :   i5 = i7 + (i8 << 2) | 0;
   22157          10 :   i6 = HEAP32[i5 >> 2] | 0;
   22158          10 :   i9 = (i6 >>> 14) + -131071 | 0;
   22159          10 :   if ((i9 | 0) == -1) {
   22160          10 :    break;
   22161          10 :   }
   22162          10 :   i9 = i8 + 1 + i9 | 0;
   22163          10 :   if ((i9 | 0) == -1) {
   22164          10 :    break;
   22165          10 :   } else {
   22166          10 :    i8 = i9;
   22167          10 :   }
   22168          10 :  }
   22169          10 :  i4 = i4 + ~i8 | 0;
   22170          10 :  if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
   22171          10 :   _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
   22172          10 :  }
   22173          10 :  HEAP32[i5 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
   22174          10 :  HEAP32[i3 >> 2] = -1;
   22175          10 :  STACKTOP = i2;
   22176          10 :  return;
   22177          10 : }
   22178          35 : function _luaO_str2d(i1, i3, i5) {
   22179          35 :  i1 = i1 | 0;
   22180          35 :  i3 = i3 | 0;
   22181          35 :  i5 = i5 | 0;
   22182          35 :  var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   22183          35 :  i2 = STACKTOP;
   22184          35 :  STACKTOP = STACKTOP + 16 | 0;
   22185          35 :  i4 = i2;
   22186          35 :  if ((_strpbrk(i1, 5464) | 0) != 0) {
   22187          35 :   i13 = 0;
   22188          35 :   STACKTOP = i2;
   22189          35 :   return i13 | 0;
   22190          35 :  }
   22191          35 :  do {
   22192          35 :   if ((_strpbrk(i1, 5472) | 0) == 0) {
   22193          35 :    d9 = +_strtod(i1, i4);
   22194          35 :    i10 = HEAP32[i4 >> 2] | 0;
   22195          35 :   } else {
   22196          35 :    HEAP32[i4 >> 2] = i1;
   22197          35 :    i8 = i1;
   22198          35 :    while (1) {
   22199          35 :     i6 = HEAP8[i8] | 0;
   22200          35 :     i10 = i8 + 1 | 0;
   22201          35 :     if ((HEAP8[(i6 & 255) + 10913 | 0] & 8) == 0) {
   22202          35 :      break;
   22203          35 :     } else {
   22204          35 :      i8 = i10;
   22205          35 :     }
   22206          35 :    }
   22207          35 :    if (i6 << 24 >> 24 == 43) {
   22208          35 :     i6 = 0;
   22209          35 :     i8 = i10;
   22210          35 :    } else if (i6 << 24 >> 24 == 45) {
   22211          35 :     i6 = 1;
   22212          35 :     i8 = i10;
   22213          35 :    } else {
   22214          35 :     i6 = 0;
   22215          35 :    }
   22216          35 :    if ((HEAP8[i8] | 0) == 48 ? (i13 = HEAP8[i8 + 1 | 0] | 0, i13 << 24 >> 24 == 88 | i13 << 24 >> 24 == 120) : 0) {
   22217          35 :     i10 = i8 + 2 | 0;
   22218          35 :     i8 = HEAP8[i10] | 0;
   22219          35 :     i12 = i8 & 255;
   22220          35 :     i11 = HEAP8[i12 + 10913 | 0] | 0;
   22221          35 :     if ((i11 & 16) == 0) {
   22222          35 :      d9 = 0.0;
   22223          35 :      i11 = i8;
   22224          35 :      i8 = 0;
   22225          35 :     } else {
   22226          35 :      d9 = 0.0;
   22227          35 :      i8 = 0;
   22228          35 :      while (1) {
   22229          35 :       if ((i11 & 2) == 0) {
   22230          35 :        i11 = (i12 | 32) + -87 | 0;
   22231          35 :       } else {
   22232          35 :        i11 = i12 + -48 | 0;
   22233          35 :       }
   22234          35 :       d9 = d9 * 16.0 + +(i11 | 0);
   22235          35 :       i8 = i8 + 1 | 0;
   22236          35 :       i10 = i10 + 1 | 0;
   22237          35 :       i13 = HEAP8[i10] | 0;
   22238          35 :       i12 = i13 & 255;
   22239          35 :       i11 = HEAP8[i12 + 10913 | 0] | 0;
   22240          35 :       if ((i11 & 16) == 0) {
   22241          35 :        i11 = i13;
   22242          35 :        break;
   22243          35 :       }
   22244          35 :      }
   22245          35 :     }
   22246          35 :     if (i11 << 24 >> 24 == 46) {
   22247          35 :      i10 = i10 + 1 | 0;
   22248          35 :      i13 = HEAPU8[i10] | 0;
   22249          35 :      i11 = HEAP8[i13 + 10913 | 0] | 0;
   22250          35 :      if ((i11 & 16) == 0) {
   22251          35 :       i12 = 0;
   22252          35 :      } else {
   22253          35 :       i12 = 0;
   22254          35 :       do {
   22255          35 :        if ((i11 & 2) == 0) {
   22256          35 :         i11 = (i13 | 32) + -87 | 0;
   22257          35 :        } else {
   22258          35 :         i11 = i13 + -48 | 0;
   22259          35 :        }
   22260          35 :        d9 = d9 * 16.0 + +(i11 | 0);
   22261          35 :        i12 = i12 + 1 | 0;
   22262          35 :        i10 = i10 + 1 | 0;
   22263          35 :        i13 = HEAPU8[i10] | 0;
   22264          35 :        i11 = HEAP8[i13 + 10913 | 0] | 0;
   22265          35 :       } while (!((i11 & 16) == 0));
   22266          35 :      }
   22267          35 :     } else {
   22268          35 :      i12 = 0;
   22269          35 :     }
   22270          35 :     if ((i12 | i8 | 0) != 0) {
   22271          35 :      i8 = Math_imul(i12, -4) | 0;
   22272          35 :      HEAP32[i4 >> 2] = i10;
   22273          35 :      i13 = HEAP8[i10] | 0;
   22274          35 :      if (i13 << 24 >> 24 == 80 | i13 << 24 >> 24 == 112) {
   22275          35 :       i13 = i10 + 1 | 0;
   22276          35 :       i11 = HEAP8[i13] | 0;
   22277          35 :       if (i11 << 24 >> 24 == 45) {
   22278          35 :        i11 = 1;
   22279          35 :        i13 = i10 + 2 | 0;
   22280          35 :       } else if (i11 << 24 >> 24 == 43) {
   22281          35 :        i11 = 0;
   22282          35 :        i13 = i10 + 2 | 0;
   22283          35 :       } else {
   22284          35 :        i11 = 0;
   22285          35 :       }
   22286          35 :       i12 = HEAP8[i13] | 0;
   22287          35 :       if (!((HEAP8[(i12 & 255) + 10913 | 0] & 2) == 0)) {
   22288          35 :        i10 = i13;
   22289          35 :        i7 = 0;
   22290          35 :        do {
   22291          35 :         i10 = i10 + 1 | 0;
   22292          35 :         i7 = (i12 << 24 >> 24) + -48 + (i7 * 10 | 0) | 0;
   22293          35 :         i12 = HEAP8[i10] | 0;
   22294          35 :        } while (!((HEAP8[(i12 & 255) + 10913 | 0] & 2) == 0));
   22295          35 :        i8 = ((i11 | 0) == 0 ? i7 : 0 - i7 | 0) + i8 | 0;
   22296          35 :        i7 = 29;
   22297          35 :       }
   22298          35 :      } else {
   22299          35 :       i7 = 29;
   22300          35 :      }
   22301          35 :      if ((i7 | 0) == 29) {
   22302          35 :       HEAP32[i4 >> 2] = i10;
   22303          35 :      }
   22304          35 :      if ((i6 | 0) != 0) {
   22305          35 :       d9 = -d9;
   22306          35 :      }
   22307          35 :      d9 = +_ldexp(d9, i8);
   22308          35 :      break;
   22309          35 :     }
   22310          35 :    }
   22311          35 :    HEAPF64[i5 >> 3] = 0.0;
   22312          35 :    i13 = 0;
   22313          35 :    STACKTOP = i2;
   22314          35 :    return i13 | 0;
   22315          35 :   }
   22316          35 :  } while (0);
   22317          35 :  HEAPF64[i5 >> 3] = d9;
   22318          35 :  if ((i10 | 0) == (i1 | 0)) {
   22319          35 :   i13 = 0;
   22320          35 :   STACKTOP = i2;
   22321          35 :   return i13 | 0;
   22322          35 :  }
   22323          35 :  if (!((HEAP8[(HEAPU8[i10] | 0) + 10913 | 0] & 8) == 0)) {
   22324          35 :   do {
   22325          35 :    i10 = i10 + 1 | 0;
   22326          35 :   } while (!((HEAP8[(HEAPU8[i10] | 0) + 10913 | 0] & 8) == 0));
   22327          35 :   HEAP32[i4 >> 2] = i10;
   22328          35 :  }
   22329          35 :  i13 = (i10 | 0) == (i1 + i3 | 0) | 0;
   22330          35 :  STACKTOP = i2;
   22331          35 :  return i13 | 0;
   22332          35 : }
   22333          38 : function _luaV_equalobj_(i2, i4, i5) {
   22334          38 :  i2 = i2 | 0;
   22335          38 :  i4 = i4 | 0;
   22336          38 :  i5 = i5 | 0;
   22337          38 :  var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   22338          38 :  i1 = STACKTOP;
   22339          38 :  i3 = i4 + 8 | 0;
   22340          38 :  L1 : do {
   22341          38 :   switch (HEAP32[i3 >> 2] & 63 | 0) {
   22342          38 :   case 7:
   22343          38 :    {
   22344          38 :     i6 = HEAP32[i4 >> 2] | 0;
   22345          38 :     i7 = HEAP32[i5 >> 2] | 0;
   22346          38 :     if ((i6 | 0) == (i7 | 0)) {
   22347          38 :      i7 = 1;
   22348          38 :      STACKTOP = i1;
   22349          38 :      return i7 | 0;
   22350          38 :     }
   22351          38 :     if ((i2 | 0) == 0) {
   22352          38 :      i7 = 0;
   22353          38 :      STACKTOP = i1;
   22354          38 :      return i7 | 0;
   22355          38 :     } else {
   22356          38 :      i6 = _get_equalTM(i2, HEAP32[i6 + 8 >> 2] | 0, HEAP32[i7 + 8 >> 2] | 0) | 0;
   22357          38 :      break L1;
   22358          38 :     }
   22359          38 :    }
   22360          38 :   case 5:
   22361          38 :    {
   22362          38 :     i7 = HEAP32[i4 >> 2] | 0;
   22363          38 :     i6 = HEAP32[i5 >> 2] | 0;
   22364          38 :     if ((i7 | 0) == (i6 | 0)) {
   22365          38 :      i7 = 1;
   22366          38 :      STACKTOP = i1;
   22367          38 :      return i7 | 0;
   22368          38 :     }
   22369          38 :     if ((i2 | 0) == 0) {
   22370          38 :      i7 = 0;
   22371          38 :      STACKTOP = i1;
   22372          38 :      return i7 | 0;
   22373          38 :     } else {
   22374          38 :      i6 = _get_equalTM(i2, HEAP32[i7 + 8 >> 2] | 0, HEAP32[i6 + 8 >> 2] | 0) | 0;
   22375          38 :      break L1;
   22376          38 :     }
   22377          38 :    }
   22378          38 :   case 4:
   22379          38 :    {
   22380          38 :     i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
   22381          38 :     STACKTOP = i1;
   22382          38 :     return i7 | 0;
   22383          38 :    }
   22384          38 :   case 20:
   22385          38 :    {
   22386          38 :     i7 = _luaS_eqlngstr(HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
   22387          38 :     STACKTOP = i1;
   22388          38 :     return i7 | 0;
   22389          38 :    }
   22390          38 :   case 3:
   22391          38 :    {
   22392          38 :     i7 = +HEAPF64[i4 >> 3] == +HEAPF64[i5 >> 3] | 0;
   22393          38 :     STACKTOP = i1;
   22394          38 :     return i7 | 0;
   22395          38 :    }
   22396          38 :   case 1:
   22397          38 :    {
   22398          38 :     i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
   22399          38 :     STACKTOP = i1;
   22400          38 :     return i7 | 0;
   22401          38 :    }
   22402          38 :   case 22:
   22403          38 :    {
   22404          38 :     i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
   22405          38 :     STACKTOP = i1;
   22406          38 :     return i7 | 0;
   22407          38 :    }
   22408          38 :   case 2:
   22409          38 :    {
   22410          38 :     i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
   22411          38 :     STACKTOP = i1;
   22412          38 :     return i7 | 0;
   22413          38 :    }
   22414          38 :   case 0:
   22415          38 :    {
   22416          38 :     i7 = 1;
   22417          38 :     STACKTOP = i1;
   22418          38 :     return i7 | 0;
   22419          38 :    }
   22420          38 :   default:
   22421          38 :    {
   22422          38 :     i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
   22423          38 :     STACKTOP = i1;
   22424          38 :     return i7 | 0;
   22425          38 :    }
   22426          38 :   }
   22427          38 :  } while (0);
   22428          38 :  if ((i6 | 0) == 0) {
   22429          38 :   i7 = 0;
   22430          38 :   STACKTOP = i1;
   22431          38 :   return i7 | 0;
   22432          38 :  }
   22433          38 :  i7 = i2 + 8 | 0;
   22434          38 :  i10 = HEAP32[i7 >> 2] | 0;
   22435          38 :  i9 = i2 + 28 | 0;
   22436          38 :  i8 = i10 - (HEAP32[i9 >> 2] | 0) | 0;
   22437          38 :  HEAP32[i7 >> 2] = i10 + 16;
   22438          38 :  i13 = i6;
   22439          38 :  i12 = HEAP32[i13 + 4 >> 2] | 0;
   22440          38 :  i11 = i10;
   22441          38 :  HEAP32[i11 >> 2] = HEAP32[i13 >> 2];
   22442          38 :  HEAP32[i11 + 4 >> 2] = i12;
   22443          38 :  HEAP32[i10 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
   22444          38 :  i10 = HEAP32[i7 >> 2] | 0;
   22445          38 :  HEAP32[i7 >> 2] = i10 + 16;
   22446          38 :  i11 = i4;
   22447          38 :  i4 = HEAP32[i11 + 4 >> 2] | 0;
   22448          38 :  i6 = i10;
   22449          38 :  HEAP32[i6 >> 2] = HEAP32[i11 >> 2];
   22450          38 :  HEAP32[i6 + 4 >> 2] = i4;
   22451          38 :  HEAP32[i10 + 8 >> 2] = HEAP32[i3 >> 2];
   22452          38 :  i3 = HEAP32[i7 >> 2] | 0;
   22453          38 :  HEAP32[i7 >> 2] = i3 + 16;
   22454          38 :  i10 = i5;
   22455          38 :  i6 = HEAP32[i10 + 4 >> 2] | 0;
   22456          38 :  i4 = i3;
   22457          38 :  HEAP32[i4 >> 2] = HEAP32[i10 >> 2];
   22458          38 :  HEAP32[i4 + 4 >> 2] = i6;
   22459          38 :  HEAP32[i3 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
   22460          38 :  _luaD_call(i2, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
   22461          38 :  i2 = HEAP32[i9 >> 2] | 0;
   22462          38 :  i3 = HEAP32[i7 >> 2] | 0;
   22463          38 :  i4 = i3 + -16 | 0;
   22464          38 :  HEAP32[i7 >> 2] = i4;
   22465          38 :  i5 = HEAP32[i4 + 4 >> 2] | 0;
   22466          38 :  i6 = i2 + i8 | 0;
   22467          38 :  HEAP32[i6 >> 2] = HEAP32[i4 >> 2];
   22468          38 :  HEAP32[i6 + 4 >> 2] = i5;
   22469          38 :  HEAP32[i2 + (i8 + 8) >> 2] = HEAP32[i3 + -8 >> 2];
   22470          38 :  i2 = HEAP32[i7 >> 2] | 0;
   22471          38 :  i3 = HEAP32[i2 + 8 >> 2] | 0;
   22472          38 :  if ((i3 | 0) != 0) {
   22473          38 :   if ((i3 | 0) == 1) {
   22474          38 :    i2 = (HEAP32[i2 >> 2] | 0) != 0;
   22475          38 :   } else {
   22476          38 :    i2 = 1;
   22477          38 :   }
   22478          38 :  } else {
   22479          38 :   i2 = 0;
   22480          38 :  }
   22481          38 :  i13 = i2 & 1;
   22482          38 :  STACKTOP = i1;
   22483          38 :  return i13 | 0;
   22484          38 : }
   22485           2 : function _forbody(i1, i5, i6, i4, i9) {
   22486           2 :  i1 = i1 | 0;
   22487           2 :  i5 = i5 | 0;
   22488           2 :  i6 = i6 | 0;
   22489           2 :  i4 = i4 | 0;
   22490           2 :  i9 = i9 | 0;
   22491           2 :  var i2 = 0, i3 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
   22492           2 :  i3 = STACKTOP;
   22493           2 :  STACKTOP = STACKTOP + 32 | 0;
   22494           2 :  i8 = i3 + 12 | 0;
   22495           2 :  i19 = i3;
   22496           2 :  i11 = i1 + 48 | 0;
   22497           2 :  i7 = HEAP32[i11 >> 2] | 0;
   22498           2 :  i18 = i7 + 46 | 0;
   22499           2 :  i22 = (HEAPU8[i18] | 0) + 3 | 0;
   22500           2 :  HEAP8[i18] = i22;
   22501           2 :  i21 = i7 + 20 | 0;
   22502           2 :  i17 = i7 + 12 | 0;
   22503           2 :  i2 = i7 + 40 | 0;
   22504           2 :  i20 = HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] | 0;
   22505           2 :  i10 = HEAP32[HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] >> 2] | 0;
   22506           2 :  HEAP32[i20 + ((HEAP16[i10 + ((i22 & 255) + -3 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2];
   22507           2 :  HEAP32[i20 + ((HEAP16[i10 + ((HEAPU8[i18] | 0) + -2 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2];
   22508           2 :  HEAP32[i20 + ((HEAP16[i10 + ((HEAPU8[i18] | 0) + -1 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2];
   22509           2 :  i2 = i1 + 16 | 0;
   22510           2 :  if ((HEAP32[i2 >> 2] | 0) != 259) {
   22511           2 :   _error_expected(i1, 259);
   22512           2 :  }
   22513           2 :  _luaX_next(i1);
   22514           2 :  i10 = (i9 | 0) != 0;
   22515           2 :  if (i10) {
   22516           2 :   i9 = _luaK_codeABx(i7, 33, i5, 131070) | 0;
   22517           2 :  } else {
   22518           2 :   i9 = _luaK_jump(i7) | 0;
   22519           2 :  }
   22520           2 :  HEAP8[i19 + 10 | 0] = 0;
   22521           2 :  HEAP8[i19 + 8 | 0] = HEAP8[i18] | 0;
   22522           2 :  i17 = HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] | 0;
   22523           2 :  HEAP16[i19 + 4 >> 1] = HEAP32[i17 + 28 >> 2];
   22524           2 :  HEAP16[i19 + 6 >> 1] = HEAP32[i17 + 16 >> 2];
   22525           2 :  HEAP8[i19 + 9 | 0] = 0;
   22526           2 :  i17 = i7 + 16 | 0;
   22527           2 :  HEAP32[i19 >> 2] = HEAP32[i17 >> 2];
   22528           2 :  HEAP32[i17 >> 2] = i19;
   22529           2 :  i19 = HEAP32[i11 >> 2] | 0;
   22530           2 :  i17 = i19 + 46 | 0;
   22531           2 :  i18 = (HEAPU8[i17] | 0) + i4 | 0;
   22532           2 :  HEAP8[i17] = i18;
   22533           2 :  if ((i4 | 0) != 0 ? (i13 = i19 + 20 | 0, i12 = i19 + 40 | 0, i14 = HEAP32[(HEAP32[i19 >> 2] | 0) + 24 >> 2] | 0, i15 = HEAP32[HEAP32[(HEAP32[i19 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i14 + ((HEAP16[i15 + ((i18 & 255) - i4 + (HEAP32[i12 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i13 >> 2], i16 = i4 + -1 | 0, (i16 | 0) != 0) : 0) {
   22534           2 :   do {
   22535           2 :    HEAP32[i14 + ((HEAP16[i15 + ((HEAPU8[i17] | 0) - i16 + (HEAP32[i12 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i13 >> 2];
   22536           2 :    i16 = i16 + -1 | 0;
   22537           2 :   } while ((i16 | 0) != 0);
   22538           2 :  }
   22539           2 :  _luaK_reserveregs(i7, i4);
   22540           2 :  i11 = HEAP32[i11 >> 2] | 0;
   22541           2 :  HEAP8[i8 + 10 | 0] = 0;
   22542           2 :  HEAP8[i8 + 8 | 0] = HEAP8[i11 + 46 | 0] | 0;
   22543           2 :  i22 = HEAP32[(HEAP32[i11 + 12 >> 2] | 0) + 64 >> 2] | 0;
   22544           2 :  HEAP16[i8 + 4 >> 1] = HEAP32[i22 + 28 >> 2];
   22545           2 :  HEAP16[i8 + 6 >> 1] = HEAP32[i22 + 16 >> 2];
   22546           2 :  HEAP8[i8 + 9 | 0] = 0;
   22547           2 :  i22 = i11 + 16 | 0;
   22548           2 :  HEAP32[i8 >> 2] = HEAP32[i22 >> 2];
   22549           2 :  HEAP32[i22 >> 2] = i8;
   22550           2 :  L13 : do {
   22551           2 :   i8 = HEAP32[i2 >> 2] | 0;
   22552           2 :   switch (i8 | 0) {
   22553           2 :   case 277:
   22554           2 :   case 286:
   22555           2 :   case 262:
   22556           2 :   case 261:
   22557           2 :   case 260:
   22558           2 :    {
   22559           2 :     break L13;
   22560           2 :    }
   22561           2 :   default:
   22562           2 :    {}
   22563           2 :   }
   22564           2 :   _statement(i1);
   22565           2 :  } while ((i8 | 0) != 274);
   22566           2 :  _leaveblock(i11);
   22567           2 :  _leaveblock(i7);
   22568           2 :  _luaK_patchtohere(i7, i9);
   22569           2 :  if (i10) {
   22570           2 :   i21 = _luaK_codeABx(i7, 32, i5, 131070) | 0;
   22571           2 :   i22 = i9 + 1 | 0;
   22572           2 :   _luaK_patchlist(i7, i21, i22);
   22573           2 :   _luaK_fixline(i7, i6);
   22574           2 :   STACKTOP = i3;
   22575           2 :   return;
   22576           2 :  } else {
   22577           2 :   _luaK_codeABC(i7, 34, i5, 0, i4) | 0;
   22578           2 :   _luaK_fixline(i7, i6);
   22579           2 :   i21 = _luaK_codeABx(i7, 35, i5 + 2 | 0, 131070) | 0;
   22580           2 :   i22 = i9 + 1 | 0;
   22581           2 :   _luaK_patchlist(i7, i21, i22);
   22582           2 :   _luaK_fixline(i7, i6);
   22583           2 :   STACKTOP = i3;
   22584           2 :   return;
   22585           2 :  }
   22586           2 : }
   22587           1 : function _dotty(i1) {
   22588           0 :  i1 = i1 | 0;
   22589           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   22590           0 :  i6 = STACKTOP;
   22591           0 :  STACKTOP = STACKTOP + 16 | 0;
   22592           0 :  i3 = i6;
   22593           0 :  i4 = i6 + 4 | 0;
   22594           0 :  i2 = HEAP32[20] | 0;
   22595           0 :  HEAP32[20] = 0;
   22596           0 :  _lua_settop(i1, 0);
   22597           0 :  if ((_pushline(i1, 1) | 0) == 0) {
   22598           0 :   _lua_settop(i1, 0);
   22599           0 :   i10 = HEAP32[_stdout >> 2] | 0;
   22600           0 :   _fputc(10, i10 | 0) | 0;
   22601           0 :   _fflush(i10 | 0) | 0;
   22602           0 :   HEAP32[20] = i2;
   22603           0 :   STACKTOP = i6;
   22604           0 :   return;
   22605           0 :  }
   22606           0 :  i5 = HEAP32[_stderr >> 2] | 0;
   22607           0 :  L4 : while (1) {
   22608           0 :   i8 = _lua_tolstring(i1, 1, i4) | 0;
   22609           0 :   i8 = _luaL_loadbufferx(i1, i8, HEAP32[i4 >> 2] | 0, 256, 0) | 0;
   22610           0 :   L6 : do {
   22611           0 :    if ((i8 | 0) == 3) {
   22612           0 :     while (1) {
   22613           0 :      i8 = _lua_tolstring(i1, -1, i3) | 0;
   22614           0 :      i7 = HEAP32[i3 >> 2] | 0;
   22615           0 :      if (!(i7 >>> 0 > 4)) {
   22616           0 :       break;
   22617           0 :      }
   22618           0 :      if ((_strcmp(i8 + (i7 + -5) | 0, 264) | 0) != 0) {
   22619           0 :       break;
   22620           0 :      }
   22621           0 :      _lua_settop(i1, -2);
   22622           0 :      if ((_pushline(i1, 0) | 0) == 0) {
   22623           0 :       i7 = 23;
   22624           0 :       break L4;
   22625           0 :      }
   22626           0 :      _lua_pushlstring(i1, 184, 1) | 0;
   22627           0 :      _lua_insert(i1, -2);
   22628           0 :      _lua_concat(i1, 3);
   22629           0 :      i8 = _lua_tolstring(i1, 1, i4) | 0;
   22630           0 :      i8 = _luaL_loadbufferx(i1, i8, HEAP32[i4 >> 2] | 0, 256, 0) | 0;
   22631           0 :      if ((i8 | 0) != 3) {
   22632           0 :       i7 = 9;
   22633           0 :       break L6;
   22634           0 :      }
   22635           0 :     }
   22636           0 :     _lua_remove(i1, 1);
   22637           0 :     i8 = 3;
   22638           0 :     i7 = 10;
   22639           0 :    } else {
   22640           0 :     i7 = 9;
   22641           0 :    }
   22642           0 :   } while (0);
   22643           0 :   do {
   22644           0 :    if ((i7 | 0) == 9) {
   22645           0 :     _lua_remove(i1, 1);
   22646           0 :     if ((i8 | 0) == -1) {
   22647           0 :      i7 = 23;
   22648           0 :      break L4;
   22649           0 :     } else if ((i8 | 0) != 0) {
   22650           0 :      i7 = 10;
   22651           0 :      break;
   22652           0 :     }
   22653           0 :     i9 = _lua_gettop(i1) | 0;
   22654           0 :     _lua_pushcclosure(i1, 142, 0);
   22655           0 :     _lua_insert(i1, i9);
   22656           0 :     HEAP32[48] = i1;
   22657           0 :     _signal(2, 1) | 0;
   22658           0 :     i10 = _lua_pcallk(i1, 0, -1, i9, 0, 0) | 0;
   22659           0 :     _signal(2, 0) | 0;
   22660           0 :     _lua_remove(i1, i9);
   22661           0 :     if ((i10 | 0) == 0) {
   22662           0 :      i7 = 17;
   22663           0 :     } else {
   22664           0 :      i9 = 0;
   22665           0 :      i7 = 12;
   22666           0 :     }
   22667           0 :    }
   22668           0 :   } while (0);
   22669           0 :   if ((i7 | 0) == 10) {
   22670           0 :    i9 = (i8 | 0) == 0;
   22671           0 :    i7 = 12;
   22672           0 :   }
   22673           0 :   do {
   22674           0 :    if ((i7 | 0) == 12) {
   22675           0 :     i7 = 0;
   22676           0 :     if ((_lua_type(i1, -1) | 0) == 0) {
   22677           0 :      if (i9) {
   22678           0 :       i7 = 17;
   22679           0 :       break;
   22680           0 :      } else {
   22681           0 :       break;
   22682           0 :      }
   22683           0 :     }
   22684           0 :     i10 = _lua_tolstring(i1, -1, 0) | 0;
   22685           0 :     i8 = HEAP32[20] | 0;
   22686           0 :     if ((i8 | 0) != 0) {
   22687           0 :      HEAP32[i3 >> 2] = i8;
   22688           0 :      _fprintf(i5 | 0, 496, i3 | 0) | 0;
   22689           0 :      _fflush(i5 | 0) | 0;
   22690           0 :     }
   22691           0 :     HEAP32[i3 >> 2] = (i10 | 0) == 0 ? 48 : i10;
   22692           0 :     _fprintf(i5 | 0, 912, i3 | 0) | 0;
   22693           0 :     _fflush(i5 | 0) | 0;
   22694           0 :     _lua_settop(i1, -2);
   22695           0 :     _lua_gc(i1, 2, 0) | 0;
   22696           0 :     if (i9) {
   22697           0 :      i7 = 17;
   22698           0 :     }
   22699           0 :    }
   22700           0 :   } while (0);
   22701           0 :   if (((i7 | 0) == 17 ? (0, (_lua_gettop(i1) | 0) > 0) : 0) ? (_luaL_checkstack(i1, 20, 112), _lua_getglobal(i1, 144), _lua_insert(i1, 1), (_lua_pcallk(i1, (_lua_gettop(i1) | 0) + -1 | 0, 0, 0, 0, 0) | 0) != 0) : 0) {
   22702           0 :    i7 = HEAP32[20] | 0;
   22703           0 :    HEAP32[i3 >> 2] = _lua_tolstring(i1, -1, 0) | 0;
   22704           0 :    i8 = _lua_pushfstring(i1, 152, i3) | 0;
   22705           0 :    if ((i7 | 0) != 0) {
   22706           0 :     HEAP32[i3 >> 2] = i7;
   22707           0 :     _fprintf(i5 | 0, 496, i3 | 0) | 0;
   22708           0 :     _fflush(i5 | 0) | 0;
   22709           0 :    }
   22710           0 :    HEAP32[i3 >> 2] = i8;
   22711           0 :    _fprintf(i5 | 0, 912, i3 | 0) | 0;
   22712           0 :    _fflush(i5 | 0) | 0;
   22713           0 :   }
   22714           0 :   _lua_settop(i1, 0);
   22715           0 :   if ((_pushline(i1, 1) | 0) == 0) {
   22716           0 :    i7 = 23;
   22717           0 :    break;
   22718           0 :   }
   22719           0 :  }
   22720           0 :  if ((i7 | 0) == 23) {
   22721           0 :   _lua_settop(i1, 0);
   22722           0 :   i10 = HEAP32[_stdout >> 2] | 0;
   22723           0 :   _fputc(10, i10 | 0) | 0;
   22724           0 :   _fflush(i10 | 0) | 0;
   22725           0 :   HEAP32[20] = i2;
   22726           0 :   STACKTOP = i6;
   22727           0 :   return;
   22728           0 :  }
   22729           1 : }
   22730           9 : function _test_then_block(i5, i1) {
   22731           9 :  i5 = i5 | 0;
   22732           9 :  i1 = i1 | 0;
   22733           9 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
   22734           9 :  i2 = STACKTOP;
   22735           9 :  STACKTOP = STACKTOP + 48 | 0;
   22736           9 :  i10 = i2 + 24 | 0;
   22737           9 :  i9 = i2;
   22738           9 :  i8 = i5 + 48 | 0;
   22739           9 :  i4 = HEAP32[i8 >> 2] | 0;
   22740           9 :  _luaX_next(i5);
   22741           9 :  _subexpr(i5, i9, 0) | 0;
   22742           9 :  i3 = i5 + 16 | 0;
   22743           9 :  if ((HEAP32[i3 >> 2] | 0) != 275) {
   22744           9 :   _error_expected(i5, 275);
   22745           9 :  }
   22746           9 :  _luaX_next(i5);
   22747           9 :  i14 = HEAP32[i3 >> 2] | 0;
   22748           9 :  do {
   22749           9 :   if ((i14 | 0) == 258 | (i14 | 0) == 266) {
   22750           9 :    _luaK_goiffalse(HEAP32[i8 >> 2] | 0, i9);
   22751           9 :    HEAP8[i10 + 10 | 0] = 0;
   22752           9 :    HEAP8[i10 + 8 | 0] = HEAP8[i4 + 46 | 0] | 0;
   22753           9 :    i11 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] | 0;
   22754           9 :    HEAP16[i10 + 4 >> 1] = HEAP32[i11 + 28 >> 2];
   22755           9 :    HEAP16[i10 + 6 >> 1] = HEAP32[i11 + 16 >> 2];
   22756           9 :    HEAP8[i10 + 9 | 0] = 0;
   22757           9 :    i11 = i4 + 16 | 0;
   22758           9 :    HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
   22759           9 :    HEAP32[i11 >> 2] = i10;
   22760           9 :    i11 = HEAP32[i9 + 16 >> 2] | 0;
   22761           9 :    i10 = HEAP32[i5 + 4 >> 2] | 0;
   22762           9 :    i14 = (HEAP32[i3 >> 2] | 0) == 266;
   22763           9 :    _luaX_next(i5);
   22764           9 :    do {
   22765           9 :     if (i14) {
   22766           9 :      if ((HEAP32[i3 >> 2] | 0) == 288) {
   22767           9 :       i7 = HEAP32[i5 + 24 >> 2] | 0;
   22768           9 :       _luaX_next(i5);
   22769           9 :       break;
   22770           9 :      } else {
   22771           9 :       _error_expected(i5, 288);
   22772           9 :      }
   22773           9 :     } else {
   22774           9 :      i7 = _luaS_new(HEAP32[i5 + 52 >> 2] | 0, 6304) | 0;
   22775           9 :     }
   22776           9 :    } while (0);
   22777           9 :    i14 = HEAP32[i5 + 64 >> 2] | 0;
   22778           9 :    i12 = i14 + 12 | 0;
   22779           9 :    i13 = i14 + 16 | 0;
   22780           9 :    i9 = HEAP32[i13 >> 2] | 0;
   22781           9 :    i14 = i14 + 20 | 0;
   22782           9 :    if ((i9 | 0) < (HEAP32[i14 >> 2] | 0)) {
   22783           9 :     i14 = HEAP32[i12 >> 2] | 0;
   22784           9 :    } else {
   22785           9 :     i14 = _luaM_growaux_(HEAP32[i5 + 52 >> 2] | 0, HEAP32[i12 >> 2] | 0, i14, 16, 32767, 6312) | 0;
   22786           9 :     HEAP32[i12 >> 2] = i14;
   22787           9 :    }
   22788           9 :    HEAP32[i14 + (i9 << 4) >> 2] = i7;
   22789           9 :    i14 = HEAP32[i12 >> 2] | 0;
   22790           9 :    HEAP32[i14 + (i9 << 4) + 8 >> 2] = i10;
   22791           9 :    HEAP8[i14 + (i9 << 4) + 12 | 0] = HEAP8[(HEAP32[i8 >> 2] | 0) + 46 | 0] | 0;
   22792           9 :    HEAP32[(HEAP32[i12 >> 2] | 0) + (i9 << 4) + 4 >> 2] = i11;
   22793           9 :    HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1;
   22794           9 :    _findlabel(i5, i9) | 0;
   22795           9 :    L18 : while (1) {
   22796           9 :     switch (HEAP32[i3 >> 2] | 0) {
   22797           9 :     case 286:
   22798           9 :     case 262:
   22799           9 :     case 261:
   22800           9 :     case 260:
   22801           9 :      {
   22802           9 :       break L18;
   22803           9 :      }
   22804           9 :     case 285:
   22805           9 :     case 59:
   22806           9 :      {
   22807           9 :       break;
   22808           9 :      }
   22809           9 :     default:
   22810           9 :      {
   22811           9 :       i6 = 16;
   22812           9 :       break L18;
   22813           9 :      }
   22814           9 :     }
   22815           9 :     _statement(i5);
   22816           9 :    }
   22817           9 :    if ((i6 | 0) == 16) {
   22818           9 :     i6 = _luaK_jump(i4) | 0;
   22819           9 :     break;
   22820           9 :    }
   22821           9 :    _leaveblock(i4);
   22822           9 :    STACKTOP = i2;
   22823           9 :    return;
   22824           9 :   } else {
   22825           9 :    _luaK_goiftrue(HEAP32[i8 >> 2] | 0, i9);
   22826           9 :    HEAP8[i10 + 10 | 0] = 0;
   22827           9 :    HEAP8[i10 + 8 | 0] = HEAP8[i4 + 46 | 0] | 0;
   22828           9 :    i6 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] | 0;
   22829           9 :    HEAP16[i10 + 4 >> 1] = HEAP32[i6 + 28 >> 2];
   22830           9 :    HEAP16[i10 + 6 >> 1] = HEAP32[i6 + 16 >> 2];
   22831           9 :    HEAP8[i10 + 9 | 0] = 0;
   22832           9 :    i6 = i4 + 16 | 0;
   22833           9 :    HEAP32[i10 >> 2] = HEAP32[i6 >> 2];
   22834           9 :    HEAP32[i6 >> 2] = i10;
   22835           9 :    i6 = HEAP32[i9 + 20 >> 2] | 0;
   22836           9 :   }
   22837           9 :  } while (0);
   22838           9 :  L26 : do {
   22839           9 :   i7 = HEAP32[i3 >> 2] | 0;
   22840           9 :   switch (i7 | 0) {
   22841           9 :   case 277:
   22842           9 :   case 286:
   22843           9 :   case 262:
   22844           9 :   case 261:
   22845           9 :   case 260:
   22846           9 :    {
   22847           9 :     break L26;
   22848           9 :    }
   22849           9 :   default:
   22850           9 :    {}
   22851           9 :   }
   22852           9 :   _statement(i5);
   22853           9 :  } while ((i7 | 0) != 274);
   22854           9 :  _leaveblock(i4);
   22855           9 :  if (((HEAP32[i3 >> 2] | 0) + -260 | 0) >>> 0 < 2) {
   22856           9 :   _luaK_concat(i4, i1, _luaK_jump(i4) | 0);
   22857           9 :  }
   22858           9 :  _luaK_patchtohere(i4, i6);
   22859           9 :  STACKTOP = i2;
   22860           9 :  return;
   22861           9 : }
   22862           1 : function _luaL_gsub(i2, i13, i11, i10) {
   22863           0 :  i2 = i2 | 0;
   22864           0 :  i13 = i13 | 0;
   22865           0 :  i11 = i11 | 0;
   22866           0 :  i10 = i10 | 0;
   22867           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
   22868           0 :  i1 = STACKTOP;
   22869           0 :  STACKTOP = STACKTOP + 1056 | 0;
   22870           0 :  i8 = i1;
   22871           0 :  i4 = i1 + 8 | 0;
   22872           0 :  i9 = _strlen(i11 | 0) | 0;
   22873           0 :  i6 = i4 + 12 | 0;
   22874           0 :  HEAP32[i6 >> 2] = i2;
   22875           0 :  i3 = i4 + 16 | 0;
   22876           0 :  HEAP32[i4 >> 2] = i3;
   22877           0 :  i5 = i4 + 8 | 0;
   22878           0 :  HEAP32[i5 >> 2] = 0;
   22879           0 :  i7 = i4 + 4 | 0;
   22880           0 :  HEAP32[i7 >> 2] = 1024;
   22881           0 :  i12 = _strstr(i13, i11) | 0;
   22882           0 :  if ((i12 | 0) == 0) {
   22883           0 :   i14 = 0;
   22884           0 :   i17 = 1024;
   22885           0 :   i16 = i2;
   22886           0 :  } else {
   22887           0 :   i14 = 0;
   22888           0 :   i17 = 1024;
   22889           0 :   i16 = i2;
   22890           0 :   do {
   22891           0 :    i15 = i12 - i13 | 0;
   22892           0 :    if ((i17 - i14 | 0) >>> 0 < i15 >>> 0) {
   22893           0 :     i17 = i17 << 1;
   22894           0 :     i17 = (i17 - i14 | 0) >>> 0 < i15 >>> 0 ? i14 + i15 | 0 : i17;
   22895           0 :     if (i17 >>> 0 < i14 >>> 0 | (i17 - i14 | 0) >>> 0 < i15 >>> 0) {
   22896           0 :      _luaL_error(i16, 1272, i8) | 0;
   22897           0 :     }
   22898           0 :     i14 = _lua_newuserdata(i16, i17) | 0;
   22899           0 :     _memcpy(i14 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
   22900           0 :     if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) {
   22901           0 :      _lua_remove(i16, -2);
   22902           0 :     }
   22903           0 :     HEAP32[i4 >> 2] = i14;
   22904           0 :     HEAP32[i7 >> 2] = i17;
   22905           0 :     i16 = i14;
   22906           0 :     i14 = HEAP32[i5 >> 2] | 0;
   22907           0 :    } else {
   22908           0 :     i16 = HEAP32[i4 >> 2] | 0;
   22909           0 :    }
   22910           0 :    _memcpy(i16 + i14 | 0, i13 | 0, i15 | 0) | 0;
   22911           0 :    i15 = (HEAP32[i5 >> 2] | 0) + i15 | 0;
   22912           0 :    HEAP32[i5 >> 2] = i15;
   22913           0 :    i13 = _strlen(i10 | 0) | 0;
   22914           0 :    i14 = HEAP32[i6 >> 2] | 0;
   22915           0 :    i16 = HEAP32[i7 >> 2] | 0;
   22916           0 :    if ((i16 - i15 | 0) >>> 0 < i13 >>> 0) {
   22917           0 :     i16 = i16 << 1;
   22918           0 :     i16 = (i16 - i15 | 0) >>> 0 < i13 >>> 0 ? i15 + i13 | 0 : i16;
   22919           0 :     if (i16 >>> 0 < i15 >>> 0 | (i16 - i15 | 0) >>> 0 < i13 >>> 0) {
   22920           0 :      _luaL_error(i14, 1272, i8) | 0;
   22921           0 :     }
   22922           0 :     i15 = _lua_newuserdata(i14, i16) | 0;
   22923           0 :     _memcpy(i15 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
   22924           0 :     if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) {
   22925           0 :      _lua_remove(i14, -2);
   22926           0 :     }
   22927           0 :     HEAP32[i4 >> 2] = i15;
   22928           0 :     HEAP32[i7 >> 2] = i16;
   22929           0 :     i14 = i15;
   22930           0 :     i15 = HEAP32[i5 >> 2] | 0;
   22931           0 :    } else {
   22932           0 :     i14 = HEAP32[i4 >> 2] | 0;
   22933           0 :    }
   22934           0 :    _memcpy(i14 + i15 | 0, i10 | 0, i13 | 0) | 0;
   22935           0 :    i14 = (HEAP32[i5 >> 2] | 0) + i13 | 0;
   22936           0 :    HEAP32[i5 >> 2] = i14;
   22937           0 :    i13 = i12 + i9 | 0;
   22938           0 :    i12 = _strstr(i13, i11) | 0;
   22939           0 :    i16 = HEAP32[i6 >> 2] | 0;
   22940           0 :    i17 = HEAP32[i7 >> 2] | 0;
   22941           0 :   } while ((i12 | 0) != 0);
   22942           0 :  }
   22943           0 :  i9 = _strlen(i13 | 0) | 0;
   22944           0 :  if ((i17 - i14 | 0) >>> 0 < i9 >>> 0) {
   22945           0 :   i10 = i17 << 1;
   22946           0 :   i10 = (i10 - i14 | 0) >>> 0 < i9 >>> 0 ? i14 + i9 | 0 : i10;
   22947           0 :   if (i10 >>> 0 < i14 >>> 0 | (i10 - i14 | 0) >>> 0 < i9 >>> 0) {
   22948           0 :    _luaL_error(i16, 1272, i8) | 0;
   22949           0 :   }
   22950           0 :   i8 = _lua_newuserdata(i16, i10) | 0;
   22951           0 :   _memcpy(i8 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
   22952           0 :   if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) {
   22953           0 :    _lua_remove(i16, -2);
   22954           0 :   }
   22955           0 :   HEAP32[i4 >> 2] = i8;
   22956           0 :   HEAP32[i7 >> 2] = i10;
   22957           0 :   i14 = HEAP32[i5 >> 2] | 0;
   22958           0 :  } else {
   22959           0 :   i8 = HEAP32[i4 >> 2] | 0;
   22960           0 :  }
   22961           0 :  _memcpy(i8 + i14 | 0, i13 | 0, i9 | 0) | 0;
   22962           0 :  i17 = (HEAP32[i5 >> 2] | 0) + i9 | 0;
   22963           0 :  HEAP32[i5 >> 2] = i17;
   22964           0 :  i5 = HEAP32[i6 >> 2] | 0;
   22965           0 :  _lua_pushlstring(i5, HEAP32[i4 >> 2] | 0, i17) | 0;
   22966           0 :  if ((HEAP32[i4 >> 2] | 0) == (i3 | 0)) {
   22967           0 :   i17 = _lua_tolstring(i2, -1, 0) | 0;
   22968           0 :   STACKTOP = i1;
   22969           0 :   return i17 | 0;
   22970           0 :  }
   22971           0 :  _lua_remove(i5, -2);
   22972           0 :  i17 = _lua_tolstring(i2, -1, 0) | 0;
   22973           0 :  STACKTOP = i1;
   22974           0 :  return i17 | 0;
   22975           1 : }
   22976           1 : function _luaK_goiffalse(i1, i3) {
   22977           1 :  i1 = i1 | 0;
   22978           1 :  i3 = i3 | 0;
   22979           1 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
   22980           1 :  i2 = STACKTOP;
   22981           1 :  _luaK_dischargevars(i1, i3);
   22982           1 :  i9 = HEAP32[i3 >> 2] | 0;
   22983           1 :  do {
   22984           1 :   if ((i9 | 0) == 10) {
   22985           1 :    i4 = HEAP32[i3 + 8 >> 2] | 0;
   22986           1 :    i8 = 15;
   22987           1 :   } else if (!((i9 | 0) == 3 | (i9 | 0) == 1)) {
   22988           1 :    i4 = i3 + 8 | 0;
   22989           1 :    if ((i9 | 0) == 6) {
   22990           1 :     i8 = 11;
   22991           1 :    } else if ((i9 | 0) == 11 ? (i10 = HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 >> 2] << 2) >> 2] | 0, (i10 & 63 | 0) == 20) : 0) {
   22992           1 :     i4 = i1 + 20 | 0;
   22993           1 :     HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -1;
   22994           1 :     i4 = _condjump(i1, 27, i10 >>> 23, 0, 0) | 0;
   22995           1 :     i8 = 15;
   22996           1 :     break;
   22997           1 :    } else {
   22998           1 :     i8 = 6;
   22999           1 :    }
   23000           1 :    if ((i8 | 0) == 6) {
   23001           1 :     i9 = i1 + 48 | 0;
   23002           1 :     i11 = HEAP8[i9] | 0;
   23003           1 :     i10 = (i11 & 255) + 1 | 0;
   23004           1 :     i12 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
   23005           1 :     do {
   23006           1 :      if (i10 >>> 0 > (HEAPU8[i12] | 0) >>> 0) {
   23007           1 :       if (i10 >>> 0 > 249) {
   23008           1 :        _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
   23009           1 :       } else {
   23010           1 :        HEAP8[i12] = i10;
   23011           1 :        i7 = HEAP8[i9] | 0;
   23012           1 :        break;
   23013           1 :       }
   23014           1 :      } else {
   23015           1 :       i7 = i11;
   23016           1 :      }
   23017           1 :     } while (0);
   23018           1 :     i12 = (i7 & 255) + 1 | 0;
   23019           1 :     HEAP8[i9] = i12;
   23020           1 :     _discharge2reg(i1, i3, (i12 & 255) + -1 | 0);
   23021           1 :     if ((HEAP32[i3 >> 2] | 0) == 6) {
   23022           1 :      i8 = 11;
   23023           1 :     }
   23024           1 :    }
   23025           1 :    if (((i8 | 0) == 11 ? (i6 = HEAP32[i4 >> 2] | 0, (i6 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0 | 0) <= (i6 | 0) : 0) {
   23026           1 :     i12 = i1 + 48 | 0;
   23027           1 :     HEAP8[i12] = (HEAP8[i12] | 0) + -1 << 24 >> 24;
   23028           1 :    }
   23029           1 :    i4 = _condjump(i1, 28, 255, HEAP32[i4 >> 2] | 0, 1) | 0;
   23030           1 :    i8 = 15;
   23031           1 :   }
   23032           1 :  } while (0);
   23033           1 :  do {
   23034           1 :   if ((i8 | 0) == 15 ? (i5 = i3 + 16 | 0, !((i4 | 0) == -1)) : 0) {
   23035           1 :    i8 = HEAP32[i5 >> 2] | 0;
   23036           1 :    if ((i8 | 0) == -1) {
   23037           1 :     HEAP32[i5 >> 2] = i4;
   23038           1 :     break;
   23039           1 :    }
   23040           1 :    i5 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
   23041           1 :    while (1) {
   23042           1 :     i7 = i5 + (i8 << 2) | 0;
   23043           1 :     i6 = HEAP32[i7 >> 2] | 0;
   23044           1 :     i9 = (i6 >>> 14) + -131071 | 0;
   23045           1 :     if ((i9 | 0) == -1) {
   23046           1 :      break;
   23047           1 :     }
   23048           1 :     i9 = i8 + 1 + i9 | 0;
   23049           1 :     if ((i9 | 0) == -1) {
   23050           1 :      break;
   23051           1 :     } else {
   23052           1 :      i8 = i9;
   23053           1 :     }
   23054           1 :    }
   23055           1 :    i4 = i4 + ~i8 | 0;
   23056           1 :    if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
   23057           1 :     _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
   23058           1 :    } else {
   23059           1 :     HEAP32[i7 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
   23060           1 :     break;
   23061           1 :    }
   23062           1 :   }
   23063           1 :  } while (0);
   23064           1 :  i3 = i3 + 20 | 0;
   23065           1 :  i4 = HEAP32[i3 >> 2] | 0;
   23066           1 :  HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2];
   23067           1 :  i5 = i1 + 28 | 0;
   23068           1 :  if ((i4 | 0) == -1) {
   23069           1 :   HEAP32[i3 >> 2] = -1;
   23070           1 :   STACKTOP = i2;
   23071           1 :   return;
   23072           1 :  }
   23073           1 :  i8 = HEAP32[i5 >> 2] | 0;
   23074           1 :  if ((i8 | 0) == -1) {
   23075           1 :   HEAP32[i5 >> 2] = i4;
   23076           1 :   HEAP32[i3 >> 2] = -1;
   23077           1 :   STACKTOP = i2;
   23078           1 :   return;
   23079           1 :  }
   23080           1 :  i7 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
   23081           1 :  while (1) {
   23082           1 :   i5 = i7 + (i8 << 2) | 0;
   23083           1 :   i6 = HEAP32[i5 >> 2] | 0;
   23084           1 :   i9 = (i6 >>> 14) + -131071 | 0;
   23085           1 :   if ((i9 | 0) == -1) {
   23086           1 :    break;
   23087           1 :   }
   23088           1 :   i9 = i8 + 1 + i9 | 0;
   23089           1 :   if ((i9 | 0) == -1) {
   23090           1 :    break;
   23091           1 :   } else {
   23092           1 :    i8 = i9;
   23093           1 :   }
   23094           1 :  }
   23095           1 :  i4 = i4 + ~i8 | 0;
   23096           1 :  if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
   23097           1 :   _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
   23098           1 :  }
   23099           1 :  HEAP32[i5 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
   23100           1 :  HEAP32[i3 >> 2] = -1;
   23101           1 :  STACKTOP = i2;
   23102           1 :  return;
   23103           1 : }
   23104         187 : function _luaV_settable(i2, i11, i7, i9) {
   23105         187 :  i2 = i2 | 0;
   23106         187 :  i11 = i11 | 0;
   23107         187 :  i7 = i7 | 0;
   23108         187 :  i9 = i9 | 0;
   23109         187 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i12 = 0, i13 = 0, i14 = 0;
   23110         187 :  i6 = STACKTOP;
   23111         187 :  STACKTOP = STACKTOP + 16 | 0;
   23112         187 :  i5 = i6;
   23113         187 :  i4 = i2 + 12 | 0;
   23114         187 :  i3 = i11;
   23115         187 :  i13 = HEAP32[i11 + 8 >> 2] | 0;
   23116         187 :  i12 = 0;
   23117         187 :  while (1) {
   23118         187 :   i11 = i3 + 8 | 0;
   23119         187 :   if ((i13 | 0) != 69) {
   23120         187 :    i14 = _luaT_gettmbyobj(i2, i3, 1) | 0;
   23121         187 :    i13 = HEAP32[i14 + 8 >> 2] | 0;
   23122         187 :    if ((i13 | 0) == 0) {
   23123         187 :     i1 = 16;
   23124         187 :     break;
   23125         187 :    }
   23126         187 :   } else {
   23127         187 :    i8 = HEAP32[i3 >> 2] | 0;
   23128         187 :    i13 = _luaH_get(i8, i7) | 0;
   23129         187 :    if ((HEAP32[i13 + 8 >> 2] | 0) != 0) {
   23130         187 :     i10 = i13;
   23131         187 :     break;
   23132         187 :    }
   23133         187 :    i14 = HEAP32[i8 + 8 >> 2] | 0;
   23134         187 :    if ((i14 | 0) == 0) {
   23135         187 :     i1 = 9;
   23136         187 :     break;
   23137         187 :    }
   23138         187 :    if (!((HEAP8[i14 + 6 | 0] & 2) == 0)) {
   23139         187 :     i1 = 9;
   23140         187 :     break;
   23141         187 :    }
   23142         187 :    i14 = _luaT_gettm(i14, 1, HEAP32[(HEAP32[i4 >> 2] | 0) + 188 >> 2] | 0) | 0;
   23143         187 :    if ((i14 | 0) == 0) {
   23144         187 :     i1 = 9;
   23145         187 :     break;
   23146         187 :    }
   23147         187 :    i13 = HEAP32[i14 + 8 >> 2] | 0;
   23148         187 :   }
   23149         187 :   i12 = i12 + 1 | 0;
   23150         187 :   if ((i13 & 15 | 0) == 6) {
   23151         187 :    i1 = 18;
   23152         187 :    break;
   23153         187 :   }
   23154         187 :   if ((i12 | 0) < 100) {
   23155         187 :    i3 = i14;
   23156         187 :   } else {
   23157         187 :    i1 = 19;
   23158         187 :    break;
   23159         187 :   }
   23160         187 :  }
   23161         187 :  if ((i1 | 0) == 9) {
   23162         187 :   if ((i13 | 0) == 5192) {
   23163         187 :    i10 = _luaH_newkey(i2, i8, i7) | 0;
   23164         187 :   } else {
   23165         187 :    i10 = i13;
   23166         187 :   }
   23167         187 :  } else if ((i1 | 0) == 16) {
   23168         187 :   _luaG_typeerror(i2, i3, 8944);
   23169         187 :  } else if ((i1 | 0) == 18) {
   23170         187 :   i13 = i2 + 8 | 0;
   23171         187 :   i8 = HEAP32[i13 >> 2] | 0;
   23172         187 :   HEAP32[i13 >> 2] = i8 + 16;
   23173         187 :   i5 = i14;
   23174         187 :   i12 = HEAP32[i5 + 4 >> 2] | 0;
   23175         187 :   i10 = i8;
   23176         187 :   HEAP32[i10 >> 2] = HEAP32[i5 >> 2];
   23177         187 :   HEAP32[i10 + 4 >> 2] = i12;
   23178         187 :   HEAP32[i8 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
   23179         187 :   i14 = HEAP32[i13 >> 2] | 0;
   23180         187 :   HEAP32[i13 >> 2] = i14 + 16;
   23181         187 :   i8 = i3;
   23182         187 :   i10 = HEAP32[i8 + 4 >> 2] | 0;
   23183         187 :   i12 = i14;
   23184         187 :   HEAP32[i12 >> 2] = HEAP32[i8 >> 2];
   23185         187 :   HEAP32[i12 + 4 >> 2] = i10;
   23186         187 :   HEAP32[i14 + 8 >> 2] = HEAP32[i11 >> 2];
   23187         187 :   i14 = HEAP32[i13 >> 2] | 0;
   23188         187 :   HEAP32[i13 >> 2] = i14 + 16;
   23189         187 :   i12 = i7;
   23190         187 :   i11 = HEAP32[i12 + 4 >> 2] | 0;
   23191         187 :   i10 = i14;
   23192         187 :   HEAP32[i10 >> 2] = HEAP32[i12 >> 2];
   23193         187 :   HEAP32[i10 + 4 >> 2] = i11;
   23194         187 :   HEAP32[i14 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
   23195         187 :   i14 = HEAP32[i13 >> 2] | 0;
   23196         187 :   HEAP32[i13 >> 2] = i14 + 16;
   23197         187 :   i10 = i9;
   23198         187 :   i11 = HEAP32[i10 + 4 >> 2] | 0;
   23199         187 :   i12 = i14;
   23200         187 :   HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
   23201         187 :   HEAP32[i12 + 4 >> 2] = i11;
   23202         187 :   HEAP32[i14 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
   23203         187 :   _luaD_call(i2, (HEAP32[i13 >> 2] | 0) + -64 | 0, 0, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
   23204         187 :   STACKTOP = i6;
   23205         187 :   return;
   23206         187 :  } else if ((i1 | 0) == 19) {
   23207         187 :   _luaG_runerror(i2, 8976, i5);
   23208         187 :  }
   23209         187 :  i12 = i9;
   23210         187 :  i13 = HEAP32[i12 + 4 >> 2] | 0;
   23211         187 :  i14 = i10;
   23212         187 :  HEAP32[i14 >> 2] = HEAP32[i12 >> 2];
   23213         187 :  HEAP32[i14 + 4 >> 2] = i13;
   23214         187 :  i14 = i9 + 8 | 0;
   23215         187 :  HEAP32[i10 + 8 >> 2] = HEAP32[i14 >> 2];
   23216         187 :  HEAP8[i8 + 6 | 0] = 0;
   23217         187 :  if ((HEAP32[i14 >> 2] & 64 | 0) == 0) {
   23218         187 :   STACKTOP = i6;
   23219         187 :   return;
   23220         187 :  }
   23221         187 :  if ((HEAP8[(HEAP32[i9 >> 2] | 0) + 5 | 0] & 3) == 0) {
   23222         187 :   STACKTOP = i6;
   23223         187 :   return;
   23224         187 :  }
   23225         187 :  if ((HEAP8[i8 + 5 | 0] & 4) == 0) {
   23226         187 :   STACKTOP = i6;
   23227         187 :   return;
   23228         187 :  }
   23229         187 :  _luaC_barrierback_(i2, i8);
   23230         187 :  STACKTOP = i6;
   23231         187 :  return;
   23232         187 : }
   23233         151 : function _luaK_code(i4, i5) {
   23234         151 :  i4 = i4 | 0;
   23235         151 :  i5 = i5 | 0;
   23236         151 :  var i1 = 0, i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
   23237         151 :  i2 = STACKTOP;
   23238         151 :  i1 = HEAP32[i4 >> 2] | 0;
   23239         151 :  i7 = i4 + 28 | 0;
   23240         151 :  i15 = HEAP32[i7 >> 2] | 0;
   23241         151 :  i3 = i4 + 20 | 0;
   23242         151 :  i8 = HEAP32[i3 >> 2] | 0;
   23243         151 :  do {
   23244         151 :   if (!((i15 | 0) == -1)) {
   23245         151 :    i11 = HEAP32[i1 + 12 >> 2] | 0;
   23246         151 :    while (1) {
   23247         151 :     i12 = i11 + (i15 << 2) | 0;
   23248         151 :     i14 = HEAP32[i12 >> 2] | 0;
   23249         151 :     i13 = (i14 >>> 14) + -131071 | 0;
   23250         151 :     if ((i13 | 0) == -1) {
   23251         151 :      i13 = -1;
   23252         151 :     } else {
   23253         151 :      i13 = i15 + 1 + i13 | 0;
   23254         151 :     }
   23255         151 :     if ((i15 | 0) > 0 ? (i9 = i11 + (i15 + -1 << 2) | 0, i10 = HEAP32[i9 >> 2] | 0, (HEAP8[5584 + (i10 & 63) | 0] | 0) < 0) : 0) {
   23256         151 :      i17 = i9;
   23257         151 :      i16 = i10;
   23258         151 :     } else {
   23259         151 :      i17 = i12;
   23260         151 :      i16 = i14;
   23261         151 :     }
   23262         151 :     if ((i16 & 63 | 0) == 28) {
   23263         151 :      HEAP32[i17 >> 2] = i16 & 8372224 | i16 >>> 23 << 6 | 27;
   23264         151 :      i14 = i8 + ~i15 | 0;
   23265         151 :      if ((((i14 | 0) > -1 ? i14 : 0 - i14 | 0) | 0) > 131071) {
   23266         151 :       i8 = 10;
   23267         151 :       break;
   23268         151 :      }
   23269         151 :      i14 = HEAP32[i12 >> 2] & 16383 | (i14 << 14) + 2147467264;
   23270         151 :     } else {
   23271         151 :      i15 = i8 + ~i15 | 0;
   23272         151 :      if ((((i15 | 0) > -1 ? i15 : 0 - i15 | 0) | 0) > 131071) {
   23273         151 :       i8 = 13;
   23274         151 :       break;
   23275         151 :      }
   23276         151 :      i14 = (i15 << 14) + 2147467264 | i14 & 16383;
   23277         151 :     }
   23278         151 :     HEAP32[i12 >> 2] = i14;
   23279         151 :     if ((i13 | 0) == -1) {
   23280         151 :      i8 = 16;
   23281         151 :      break;
   23282         151 :     } else {
   23283         151 :      i15 = i13;
   23284         151 :     }
   23285         151 :    }
   23286         151 :    if ((i8 | 0) == 10) {
   23287         151 :     _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
   23288         151 :    } else if ((i8 | 0) == 13) {
   23289         151 :     _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
   23290         151 :    } else if ((i8 | 0) == 16) {
   23291         151 :     i6 = HEAP32[i3 >> 2] | 0;
   23292         151 :     break;
   23293         151 :    }
   23294         151 :   } else {
   23295         151 :    i6 = i8;
   23296         151 :   }
   23297         151 :  } while (0);
   23298         151 :  HEAP32[i7 >> 2] = -1;
   23299         151 :  i7 = i1 + 48 | 0;
   23300         151 :  if ((i6 | 0) < (HEAP32[i7 >> 2] | 0)) {
   23301         151 :   i7 = i1 + 12 | 0;
   23302         151 :  } else {
   23303         151 :   i6 = i1 + 12 | 0;
   23304         151 :   HEAP32[i6 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i6 >> 2] | 0, i7, 4, 2147483645, 10616) | 0;
   23305         151 :   i7 = i6;
   23306         151 :   i6 = HEAP32[i3 >> 2] | 0;
   23307         151 :  }
   23308         151 :  HEAP32[(HEAP32[i7 >> 2] | 0) + (i6 << 2) >> 2] = i5;
   23309         151 :  i5 = HEAP32[i3 >> 2] | 0;
   23310         151 :  i6 = i1 + 52 | 0;
   23311         151 :  i4 = i4 + 12 | 0;
   23312         151 :  if ((i5 | 0) < (HEAP32[i6 >> 2] | 0)) {
   23313         151 :   i15 = i1 + 20 | 0;
   23314         151 :   i17 = i5;
   23315         151 :   i16 = HEAP32[i4 >> 2] | 0;
   23316         151 :   i16 = i16 + 8 | 0;
   23317         151 :   i16 = HEAP32[i16 >> 2] | 0;
   23318         151 :   i15 = HEAP32[i15 >> 2] | 0;
   23319         151 :   i17 = i15 + (i17 << 2) | 0;
   23320         151 :   HEAP32[i17 >> 2] = i16;
   23321         151 :   i17 = HEAP32[i3 >> 2] | 0;
   23322         151 :   i16 = i17 + 1 | 0;
   23323         151 :   HEAP32[i3 >> 2] = i16;
   23324         151 :   STACKTOP = i2;
   23325         151 :   return i17 | 0;
   23326         151 :  } else {
   23327         151 :   i15 = i1 + 20 | 0;
   23328         151 :   HEAP32[i15 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i4 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i15 >> 2] | 0, i6, 4, 2147483645, 10616) | 0;
   23329         151 :   i17 = HEAP32[i3 >> 2] | 0;
   23330         151 :   i16 = HEAP32[i4 >> 2] | 0;
   23331         151 :   i16 = i16 + 8 | 0;
   23332         151 :   i16 = HEAP32[i16 >> 2] | 0;
   23333         151 :   i15 = HEAP32[i15 >> 2] | 0;
   23334         151 :   i17 = i15 + (i17 << 2) | 0;
   23335         151 :   HEAP32[i17 >> 2] = i16;
   23336         151 :   i17 = HEAP32[i3 >> 2] | 0;
   23337         151 :   i16 = i17 + 1 | 0;
   23338         151 :   HEAP32[i3 >> 2] = i16;
   23339         151 :   STACKTOP = i2;
   23340         151 :   return i17 | 0;
   23341         151 :  }
   23342         151 :  return 0;
   23343         151 : }
   23344           1 : function _luaH_next(i9, i5, i2) {
   23345           0 :  i9 = i9 | 0;
   23346           0 :  i5 = i5 | 0;
   23347           0 :  i2 = i2 | 0;
   23348           0 :  var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0;
   23349           0 :  i1 = STACKTOP;
   23350           0 :  STACKTOP = STACKTOP + 16 | 0;
   23351           0 :  i8 = i1 + 8 | 0;
   23352           0 :  i11 = i1;
   23353           0 :  i3 = i2 + 8 | 0;
   23354           0 :  i10 = HEAP32[i3 >> 2] | 0;
   23355           0 :  do {
   23356           0 :   if ((i10 | 0) != 0) {
   23357           0 :    if ((((i10 | 0) == 3 ? (d14 = +HEAPF64[i2 >> 3], HEAPF64[i11 >> 3] = d14 + 6755399441055744.0, i12 = HEAP32[i11 >> 2] | 0, +(i12 | 0) == d14) : 0) ? (i12 | 0) > 0 : 0) ? (i13 = HEAP32[i5 + 28 >> 2] | 0, (i12 | 0) <= (i13 | 0)) : 0) {
   23358           0 :     i6 = i13;
   23359           0 :     i7 = i12 + -1 | 0;
   23360           0 :     break;
   23361           0 :    }
   23362           0 :    i10 = _mainposition(i5, i2) | 0;
   23363           0 :    while (1) {
   23364           0 :     i4 = i10 + 16 | 0;
   23365           0 :     i11 = i10 + 24 | 0;
   23366           0 :     i12 = HEAP32[i11 >> 2] | 0;
   23367           0 :     if ((i12 | 0) == (HEAP32[i3 >> 2] | 0)) {
   23368           0 :      if ((_luaV_equalobj_(0, i4, i2) | 0) != 0) {
   23369           0 :       i4 = 15;
   23370           0 :       break;
   23371           0 :      }
   23372           0 :      i12 = HEAP32[i11 >> 2] | 0;
   23373           0 :     }
   23374           0 :     if (((i12 | 0) == 11 ? (HEAP32[i3 >> 2] & 64 | 0) != 0 : 0) ? (HEAP32[i4 >> 2] | 0) == (HEAP32[i2 >> 2] | 0) : 0) {
   23375           0 :      i4 = 15;
   23376           0 :      break;
   23377           0 :     }
   23378           0 :     i10 = HEAP32[i10 + 28 >> 2] | 0;
   23379           0 :     if ((i10 | 0) == 0) {
   23380           0 :      i4 = 18;
   23381           0 :      break;
   23382           0 :     }
   23383           0 :    }
   23384           0 :    if ((i4 | 0) == 15) {
   23385           0 :     i7 = HEAP32[i5 + 28 >> 2] | 0;
   23386           0 :     i6 = i7;
   23387           0 :     i7 = (i10 - (HEAP32[i5 + 16 >> 2] | 0) >> 5) + i7 | 0;
   23388           0 :     break;
   23389           0 :    } else if ((i4 | 0) == 18) {
   23390           0 :     _luaG_runerror(i9, 8064, i8);
   23391           0 :    }
   23392           0 :   } else {
   23393           0 :    i6 = HEAP32[i5 + 28 >> 2] | 0;
   23394           0 :    i7 = -1;
   23395           0 :   }
   23396           0 :  } while (0);
   23397           0 :  i8 = i5 + 12 | 0;
   23398           0 :  while (1) {
   23399           0 :   i9 = i7 + 1 | 0;
   23400           0 :   if ((i9 | 0) >= (i6 | 0)) {
   23401           0 :    break;
   23402           0 :   }
   23403           0 :   i11 = HEAP32[i8 >> 2] | 0;
   23404           0 :   i10 = i11 + (i9 << 4) + 8 | 0;
   23405           0 :   if ((HEAP32[i10 >> 2] | 0) == 0) {
   23406           0 :    i7 = i9;
   23407           0 :   } else {
   23408           0 :    i4 = 21;
   23409           0 :    break;
   23410           0 :   }
   23411           0 :  }
   23412           0 :  if ((i4 | 0) == 21) {
   23413           0 :   HEAPF64[i2 >> 3] = +(i7 + 2 | 0);
   23414           0 :   HEAP32[i3 >> 2] = 3;
   23415           0 :   i11 = i11 + (i9 << 4) | 0;
   23416           0 :   i12 = HEAP32[i11 + 4 >> 2] | 0;
   23417           0 :   i13 = i2 + 16 | 0;
   23418           0 :   HEAP32[i13 >> 2] = HEAP32[i11 >> 2];
   23419           0 :   HEAP32[i13 + 4 >> 2] = i12;
   23420           0 :   HEAP32[i2 + 24 >> 2] = HEAP32[i10 >> 2];
   23421           0 :   i13 = 1;
   23422           0 :   STACKTOP = i1;
   23423           0 :   return i13 | 0;
   23424           0 :  }
   23425           0 :  i8 = i9 - i6 | 0;
   23426           0 :  i6 = 1 << (HEAPU8[i5 + 7 | 0] | 0);
   23427           0 :  if ((i8 | 0) >= (i6 | 0)) {
   23428           0 :   i13 = 0;
   23429           0 :   STACKTOP = i1;
   23430           0 :   return i13 | 0;
   23431           0 :  }
   23432           0 :  i7 = i5 + 16 | 0;
   23433           0 :  i5 = HEAP32[i7 >> 2] | 0;
   23434           0 :  while (1) {
   23435           0 :   i9 = i8 + 1 | 0;
   23436           0 :   if ((HEAP32[i5 + (i8 << 5) + 8 >> 2] | 0) != 0) {
   23437           0 :    break;
   23438           0 :   }
   23439           0 :   if ((i9 | 0) < (i6 | 0)) {
   23440           0 :    i8 = i9;
   23441           0 :   } else {
   23442           0 :    i2 = 0;
   23443           0 :    i4 = 27;
   23444           0 :    break;
   23445           0 :   }
   23446           0 :  }
   23447           0 :  if ((i4 | 0) == 27) {
   23448           0 :   STACKTOP = i1;
   23449           0 :   return i2 | 0;
   23450           0 :  }
   23451           0 :  i11 = i5 + (i8 << 5) + 16 | 0;
   23452           0 :  i10 = HEAP32[i11 + 4 >> 2] | 0;
   23453           0 :  i13 = i2;
   23454           0 :  HEAP32[i13 >> 2] = HEAP32[i11 >> 2];
   23455           0 :  HEAP32[i13 + 4 >> 2] = i10;
   23456           0 :  HEAP32[i3 >> 2] = HEAP32[i5 + (i8 << 5) + 24 >> 2];
   23457           0 :  i13 = HEAP32[i7 >> 2] | 0;
   23458           0 :  i10 = i13 + (i8 << 5) | 0;
   23459           0 :  i11 = HEAP32[i10 + 4 >> 2] | 0;
   23460           0 :  i12 = i2 + 16 | 0;
   23461           0 :  HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
   23462           0 :  HEAP32[i12 + 4 >> 2] = i11;
   23463           0 :  HEAP32[i2 + 24 >> 2] = HEAP32[i13 + (i8 << 5) + 8 >> 2];
   23464           0 :  i13 = 1;
   23465           0 :  STACKTOP = i1;
   23466           0 :  return i13 | 0;
   23467           1 : }
   23468           1 : function _g_read(i1, i3, i2) {
   23469           0 :  i1 = i1 | 0;
   23470           0 :  i3 = i3 | 0;
   23471           0 :  i2 = i2 | 0;
   23472           0 :  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   23473           0 :  i4 = STACKTOP;
   23474           0 :  STACKTOP = STACKTOP + 1056 | 0;
   23475           0 :  i7 = i4 + 8 | 0;
   23476           0 :  i9 = i4;
   23477           0 :  i10 = _lua_gettop(i1) | 0;
   23478           0 :  _clearerr(i3 | 0);
   23479           0 :  L1 : do {
   23480           0 :   if ((i10 | 0) == 1) {
   23481           0 :    i11 = i2 + 1 | 0;
   23482           0 :    i12 = _read_line(i1, i3, 1) | 0;
   23483           0 :   } else {
   23484           0 :    _luaL_checkstack(i1, i10 + 19 | 0, 3256);
   23485           0 :    i6 = i7 + 8 | 0;
   23486           0 :    i5 = i7 + 8 | 0;
   23487           0 :    i10 = i10 + -2 | 0;
   23488           0 :    i11 = i2;
   23489           0 :    L4 : while (1) {
   23490           0 :     do {
   23491           0 :      if ((_lua_type(i1, i11) | 0) == 3) {
   23492           0 :       i12 = _lua_tointegerx(i1, i11, 0) | 0;
   23493           0 :       if ((i12 | 0) == 0) {
   23494           0 :        i12 = _fgetc(i3 | 0) | 0;
   23495           0 :        _ungetc(i12 | 0, i3 | 0) | 0;
   23496           0 :        _lua_pushlstring(i1, 0, 0) | 0;
   23497           0 :        i12 = (i12 | 0) != -1 | 0;
   23498           0 :        break;
   23499           0 :       } else {
   23500           0 :        _luaL_buffinit(i1, i7);
   23501           0 :        i12 = _fread(_luaL_prepbuffsize(i7, i12) | 0, 1, i12 | 0, i3 | 0) | 0;
   23502           0 :        HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i12;
   23503           0 :        _luaL_pushresult(i7);
   23504           0 :        i12 = (i12 | 0) != 0 | 0;
   23505           0 :        break;
   23506           0 :       }
   23507           0 :      } else {
   23508           0 :       i12 = _lua_tolstring(i1, i11, 0) | 0;
   23509           0 :       if (!((i12 | 0) != 0 ? (HEAP8[i12] | 0) == 42 : 0)) {
   23510           0 :        _luaL_argerror(i1, i11, 3280) | 0;
   23511           0 :       }
   23512           0 :       i12 = HEAP8[i12 + 1 | 0] | 0;
   23513           0 :       if ((i12 | 0) == 110) {
   23514           0 :        HEAP32[i7 >> 2] = i9;
   23515           0 :        if ((_fscanf(i3 | 0, 3312, i7 | 0) | 0) != 1) {
   23516           0 :         i8 = 14;
   23517           0 :         break L4;
   23518           0 :        }
   23519           0 :        _lua_pushnumber(i1, +HEAPF64[i9 >> 3]);
   23520           0 :        i12 = 1;
   23521           0 :        break;
   23522           0 :       } else if ((i12 | 0) == 108) {
   23523           0 :        i12 = _read_line(i1, i3, 1) | 0;
   23524           0 :        break;
   23525           0 :       } else if ((i12 | 0) == 76) {
   23526           0 :        i12 = _read_line(i1, i3, 0) | 0;
   23527           0 :        break;
   23528           0 :       } else if ((i12 | 0) == 97) {
   23529           0 :        _luaL_buffinit(i1, i7);
   23530           0 :        i12 = _fread(_luaL_prepbuffsize(i7, 1024) | 0, 1, 1024, i3 | 0) | 0;
   23531           0 :        HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i12;
   23532           0 :        if (!(i12 >>> 0 < 1024)) {
   23533           0 :         i12 = 1024;
   23534           0 :         do {
   23535           0 :          i12 = i12 << (i12 >>> 0 < 1073741824);
   23536           0 :          i13 = _fread(_luaL_prepbuffsize(i7, i12) | 0, 1, i12 | 0, i3 | 0) | 0;
   23537           0 :          HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i13;
   23538           0 :         } while (!(i13 >>> 0 < i12 >>> 0));
   23539           0 :        }
   23540           0 :        _luaL_pushresult(i7);
   23541           0 :        i12 = 1;
   23542           0 :        break;
   23543           0 :       } else {
   23544           0 :        break L4;
   23545           0 :       }
   23546           0 :      }
   23547           0 :     } while (0);
   23548           0 :     i11 = i11 + 1 | 0;
   23549           0 :     if ((i10 | 0) == 0 | (i12 | 0) == 0) {
   23550           0 :      break L1;
   23551           0 :     } else {
   23552           0 :      i10 = i10 + -1 | 0;
   23553           0 :     }
   23554           0 :    }
   23555           0 :    if ((i8 | 0) == 14) {
   23556           0 :     _lua_pushnil(i1);
   23557           0 :     i11 = i11 + 1 | 0;
   23558           0 :     i12 = 0;
   23559           0 :     break;
   23560           0 :    }
   23561           0 :    i13 = _luaL_argerror(i1, i11, 3296) | 0;
   23562           0 :    STACKTOP = i4;
   23563           0 :    return i13 | 0;
   23564           0 :   }
   23565           0 :  } while (0);
   23566           0 :  if ((_ferror(i3 | 0) | 0) != 0) {
   23567           0 :   i13 = _luaL_fileresult(i1, 0, 0) | 0;
   23568           0 :   STACKTOP = i4;
   23569           0 :   return i13 | 0;
   23570           0 :  }
   23571           0 :  if ((i12 | 0) == 0) {
   23572           0 :   _lua_settop(i1, -2);
   23573           0 :   _lua_pushnil(i1);
   23574           0 :  }
   23575           0 :  i13 = i11 - i2 | 0;
   23576           0 :  STACKTOP = i4;
   23577           0 :  return i13 | 0;
   23578           1 : }
   23579           1 : function _luaY_parser(i8, i12, i10, i11, i9, i13) {
   23580           1 :  i8 = i8 | 0;
   23581           1 :  i12 = i12 | 0;
   23582           1 :  i10 = i10 | 0;
   23583           1 :  i11 = i11 | 0;
   23584           1 :  i9 = i9 | 0;
   23585           1 :  i13 = i13 | 0;
   23586           1 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i14 = 0, i15 = 0;
   23587           1 :  i2 = STACKTOP;
   23588           1 :  STACKTOP = STACKTOP + 176 | 0;
   23589           1 :  i5 = i2 + 156 | 0;
   23590           1 :  i7 = i2 + 80 | 0;
   23591           1 :  i4 = i2;
   23592           1 :  i6 = i2 + 104 | 0;
   23593           1 :  i3 = _luaF_newLclosure(i8, 1) | 0;
   23594           1 :  i15 = i8 + 8 | 0;
   23595           1 :  i14 = HEAP32[i15 >> 2] | 0;
   23596           1 :  HEAP32[i14 >> 2] = i3;
   23597           1 :  HEAP32[i14 + 8 >> 2] = 70;
   23598           1 :  i14 = (HEAP32[i15 >> 2] | 0) + 16 | 0;
   23599           1 :  HEAP32[i15 >> 2] = i14;
   23600           1 :  if (((HEAP32[i8 + 24 >> 2] | 0) - i14 | 0) < 16) {
   23601           1 :   _luaD_growstack(i8, 0);
   23602           1 :  }
   23603           1 :  i14 = _luaF_newproto(i8) | 0;
   23604           1 :  HEAP32[i3 + 12 >> 2] = i14;
   23605           1 :  HEAP32[i6 >> 2] = i14;
   23606           1 :  i9 = _luaS_new(i8, i9) | 0;
   23607           1 :  HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] = i9;
   23608           1 :  HEAP32[i4 + 60 >> 2] = i10;
   23609           1 :  i9 = i4 + 64 | 0;
   23610           1 :  HEAP32[i9 >> 2] = i11;
   23611           1 :  HEAP32[i11 + 28 >> 2] = 0;
   23612           1 :  HEAP32[i11 + 16 >> 2] = 0;
   23613           1 :  HEAP32[i11 + 4 >> 2] = 0;
   23614           1 :  _luaX_setinput(i8, i4, i12, HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] | 0, i13);
   23615           1 :  i10 = HEAP32[i4 + 52 >> 2] | 0;
   23616           1 :  i13 = i4 + 48 | 0;
   23617           1 :  HEAP32[i6 + 8 >> 2] = HEAP32[i13 >> 2];
   23618           1 :  i8 = i6 + 12 | 0;
   23619           1 :  HEAP32[i8 >> 2] = i4;
   23620           1 :  HEAP32[i13 >> 2] = i6;
   23621           1 :  HEAP32[i6 + 20 >> 2] = 0;
   23622           1 :  HEAP32[i6 + 24 >> 2] = 0;
   23623           1 :  HEAP32[i6 + 28 >> 2] = -1;
   23624           1 :  HEAP32[i6 + 32 >> 2] = 0;
   23625           1 :  HEAP32[i6 + 36 >> 2] = 0;
   23626           1 :  i13 = i6 + 44 | 0;
   23627           1 :  HEAP32[i13 + 0 >> 2] = 0;
   23628           1 :  HEAP8[i13 + 4 | 0] = 0;
   23629           1 :  HEAP32[i6 + 40 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + 4 >> 2];
   23630           1 :  i9 = i6 + 16 | 0;
   23631           1 :  HEAP32[i9 >> 2] = 0;
   23632           1 :  i13 = HEAP32[i6 >> 2] | 0;
   23633           1 :  HEAP32[i13 + 36 >> 2] = HEAP32[i4 + 68 >> 2];
   23634           1 :  HEAP8[i13 + 78 | 0] = 2;
   23635           1 :  i13 = _luaH_new(i10) | 0;
   23636           1 :  HEAP32[i6 + 4 >> 2] = i13;
   23637           1 :  i14 = i10 + 8 | 0;
   23638           1 :  i15 = HEAP32[i14 >> 2] | 0;
   23639           1 :  HEAP32[i15 >> 2] = i13;
   23640           1 :  HEAP32[i15 + 8 >> 2] = 69;
   23641           1 :  i15 = (HEAP32[i14 >> 2] | 0) + 16 | 0;
   23642           1 :  HEAP32[i14 >> 2] = i15;
   23643           1 :  if (((HEAP32[i10 + 24 >> 2] | 0) - i15 | 0) < 16) {
   23644           1 :   _luaD_growstack(i10, 0);
   23645           1 :  }
   23646           1 :  HEAP8[i5 + 10 | 0] = 0;
   23647           1 :  HEAP8[i5 + 8 | 0] = HEAP8[i6 + 46 | 0] | 0;
   23648           1 :  i15 = HEAP32[(HEAP32[i8 >> 2] | 0) + 64 >> 2] | 0;
   23649           1 :  HEAP16[i5 + 4 >> 1] = HEAP32[i15 + 28 >> 2];
   23650           1 :  HEAP16[i5 + 6 >> 1] = HEAP32[i15 + 16 >> 2];
   23651           1 :  HEAP8[i5 + 9 | 0] = 0;
   23652           1 :  HEAP32[i5 >> 2] = HEAP32[i9 >> 2];
   23653           1 :  HEAP32[i9 >> 2] = i5;
   23654           1 :  HEAP8[(HEAP32[i6 >> 2] | 0) + 77 | 0] = 1;
   23655           1 :  HEAP32[i7 + 16 >> 2] = -1;
   23656           1 :  HEAP32[i7 + 20 >> 2] = -1;
   23657           1 :  HEAP32[i7 >> 2] = 7;
   23658           1 :  HEAP32[i7 + 8 >> 2] = 0;
   23659           1 :  _newupvalue(i6, HEAP32[i4 + 72 >> 2] | 0, i7) | 0;
   23660           1 :  _luaX_next(i4);
   23661           1 :  i5 = i4 + 16 | 0;
   23662           1 :  L7 : while (1) {
   23663           1 :   i6 = HEAP32[i5 >> 2] | 0;
   23664           1 :   switch (i6 | 0) {
   23665           1 :   case 277:
   23666           1 :   case 286:
   23667           1 :   case 262:
   23668           1 :   case 261:
   23669           1 :   case 260:
   23670           1 :    {
   23671           1 :     break L7;
   23672           1 :    }
   23673           1 :   default:
   23674           1 :    {}
   23675           1 :   }
   23676           1 :   _statement(i4);
   23677           1 :   if ((i6 | 0) == 274) {
   23678           1 :    i1 = 8;
   23679           1 :    break;
   23680           1 :   }
   23681           1 :  }
   23682           1 :  if ((i1 | 0) == 8) {
   23683           1 :   i6 = HEAP32[i5 >> 2] | 0;
   23684           1 :  }
   23685           1 :  if ((i6 | 0) == 286) {
   23686           1 :   _close_func(i4);
   23687           1 :   STACKTOP = i2;
   23688           1 :   return i3 | 0;
   23689           1 :  } else {
   23690           1 :   _error_expected(i4, 286);
   23691           1 :  }
   23692           1 :  return 0;
   23693           1 : }
   23694      142995 : function _luaV_lessthan(i5, i4, i2) {
   23695      142995 :  i5 = i5 | 0;
   23696      142995 :  i4 = i4 | 0;
   23697      142995 :  i2 = i2 | 0;
   23698      142995 :  var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   23699      142995 :  i1 = STACKTOP;
   23700      142995 :  i6 = i4 + 8 | 0;
   23701      142995 :  i7 = HEAP32[i6 >> 2] | 0;
   23702      142995 :  if ((i7 | 0) == 3) {
   23703      142995 :   if ((HEAP32[i2 + 8 >> 2] | 0) == 3) {
   23704      142995 :    i9 = +HEAPF64[i4 >> 3] < +HEAPF64[i2 >> 3] | 0;
   23705      142995 :    STACKTOP = i1;
   23706      142995 :    return i9 | 0;
   23707      142995 :   }
   23708      142995 :  } else {
   23709      142995 :   if ((i7 & 15 | 0) == 4 ? (HEAP32[i2 + 8 >> 2] & 15 | 0) == 4 : 0) {
   23710      142995 :    i6 = HEAP32[i4 >> 2] | 0;
   23711      142995 :    i4 = HEAP32[i2 >> 2] | 0;
   23712      142995 :    i3 = i6 + 16 | 0;
   23713      142995 :    i5 = i4 + 16 | 0;
   23714      142995 :    i7 = _strcmp(i3, i5) | 0;
   23715      142995 :    L8 : do {
   23716      142995 :     if ((i7 | 0) == 0) {
   23717      142995 :      i2 = HEAP32[i6 + 12 >> 2] | 0;
   23718      142995 :      i4 = HEAP32[i4 + 12 >> 2] | 0;
   23719      142995 :      while (1) {
   23720      142995 :       i7 = _strlen(i3 | 0) | 0;
   23721      142995 :       i6 = (i7 | 0) == (i2 | 0);
   23722      142995 :       if ((i7 | 0) == (i4 | 0)) {
   23723      142995 :        break;
   23724      142995 :       }
   23725      142995 :       if (i6) {
   23726      142995 :        i7 = -1;
   23727      142995 :        break L8;
   23728      142995 :       }
   23729      142995 :       i6 = i7 + 1 | 0;
   23730      142995 :       i3 = i3 + i6 | 0;
   23731      142995 :       i5 = i5 + i6 | 0;
   23732      142995 :       i7 = _strcmp(i3, i5) | 0;
   23733      142995 :       if ((i7 | 0) == 0) {
   23734      142995 :        i2 = i2 - i6 | 0;
   23735      142995 :        i4 = i4 - i6 | 0;
   23736      142995 :       } else {
   23737      142995 :        break L8;
   23738      142995 :       }
   23739      142995 :      }
   23740      142995 :      i7 = i6 & 1 ^ 1;
   23741      142995 :     }
   23742      142995 :    } while (0);
   23743      142995 :    i9 = i7 >>> 31;
   23744      142995 :    STACKTOP = i1;
   23745      142995 :    return i9 | 0;
   23746      142995 :   }
   23747      142995 :  }
   23748      142995 :  i8 = i5 + 8 | 0;
   23749      142995 :  i7 = HEAP32[i8 >> 2] | 0;
   23750      142995 :  i9 = _luaT_gettmbyobj(i5, i4, 13) | 0;
   23751      142995 :  if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
   23752      142995 :   i9 = _luaT_gettmbyobj(i5, i2, 13) | 0;
   23753      142995 :   if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
   23754      142995 :    _luaG_ordererror(i5, i4, i2);
   23755      142995 :   } else {
   23756      142995 :    i3 = i9;
   23757      142995 :   }
   23758      142995 :  } else {
   23759      142995 :   i3 = i9;
   23760      142995 :  }
   23761      142995 :  i10 = i5 + 28 | 0;
   23762      142995 :  i9 = i7 - (HEAP32[i10 >> 2] | 0) | 0;
   23763      142995 :  i11 = HEAP32[i8 >> 2] | 0;
   23764      142995 :  HEAP32[i8 >> 2] = i11 + 16;
   23765      142995 :  i13 = i3;
   23766      142995 :  i12 = HEAP32[i13 + 4 >> 2] | 0;
   23767      142995 :  i7 = i11;
   23768      142995 :  HEAP32[i7 >> 2] = HEAP32[i13 >> 2];
   23769      142995 :  HEAP32[i7 + 4 >> 2] = i12;
   23770      142995 :  HEAP32[i11 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
   23771      142995 :  i3 = HEAP32[i8 >> 2] | 0;
   23772      142995 :  HEAP32[i8 >> 2] = i3 + 16;
   23773      142995 :  i11 = i4;
   23774      142995 :  i7 = HEAP32[i11 + 4 >> 2] | 0;
   23775      142995 :  i4 = i3;
   23776      142995 :  HEAP32[i4 >> 2] = HEAP32[i11 >> 2];
   23777      142995 :  HEAP32[i4 + 4 >> 2] = i7;
   23778      142995 :  HEAP32[i3 + 8 >> 2] = HEAP32[i6 >> 2];
   23779      142995 :  i3 = HEAP32[i8 >> 2] | 0;
   23780      142995 :  HEAP32[i8 >> 2] = i3 + 16;
   23781      142995 :  i4 = i2;
   23782      142995 :  i7 = HEAP32[i4 + 4 >> 2] | 0;
   23783      142995 :  i6 = i3;
   23784      142995 :  HEAP32[i6 >> 2] = HEAP32[i4 >> 2];
   23785      142995 :  HEAP32[i6 + 4 >> 2] = i7;
   23786      142995 :  HEAP32[i3 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
   23787      142995 :  _luaD_call(i5, (HEAP32[i8 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1);
   23788      142995 :  i2 = HEAP32[i10 >> 2] | 0;
   23789      142995 :  i3 = HEAP32[i8 >> 2] | 0;
   23790      142995 :  i5 = i3 + -16 | 0;
   23791      142995 :  HEAP32[i8 >> 2] = i5;
   23792      142995 :  i6 = HEAP32[i5 + 4 >> 2] | 0;
   23793      142995 :  i7 = i2 + i9 | 0;
   23794      142995 :  HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
   23795      142995 :  HEAP32[i7 + 4 >> 2] = i6;
   23796      142995 :  HEAP32[i2 + (i9 + 8) >> 2] = HEAP32[i3 + -8 >> 2];
   23797      142995 :  i2 = HEAP32[i8 >> 2] | 0;
   23798      142995 :  i3 = HEAP32[i2 + 8 >> 2] | 0;
   23799      142995 :  if ((i3 | 0) != 0) {
   23800      142995 :   if ((i3 | 0) == 1) {
   23801      142995 :    i2 = (HEAP32[i2 >> 2] | 0) != 0;
   23802      142995 :   } else {
   23803      142995 :    i2 = 1;
   23804      142995 :   }
   23805      142995 :  } else {
   23806      142995 :   i2 = 0;
   23807      142995 :  }
   23808      142995 :  i13 = i2 & 1;
   23809      142995 :  STACKTOP = i1;
   23810      142995 :  return i13 | 0;
   23811      142995 : }
   23812          90 : function _discharge2reg(i4, i3, i1) {
   23813          90 :  i4 = i4 | 0;
   23814          90 :  i3 = i3 | 0;
   23815          90 :  i1 = i1 | 0;
   23816          90 :  var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0;
   23817          90 :  i2 = STACKTOP;
   23818          90 :  STACKTOP = STACKTOP + 32 | 0;
   23819          90 :  i9 = i2 + 16 | 0;
   23820          90 :  i8 = i2;
   23821          90 :  _luaK_dischargevars(i4, i3);
   23822          90 :  i10 = HEAP32[i3 >> 2] | 0;
   23823          90 :  L1 : do {
   23824          90 :   switch (i10 | 0) {
   23825          90 :   case 5:
   23826          90 :    {
   23827          90 :     d11 = +HEAPF64[i3 + 8 >> 3];
   23828          90 :     HEAPF64[i9 >> 3] = d11;
   23829          90 :     i5 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 52 >> 2] | 0;
   23830          90 :     HEAPF64[i8 >> 3] = d11;
   23831          90 :     HEAP32[i8 + 8 >> 2] = 3;
   23832          90 :     if (d11 != d11 | 0.0 != 0.0 | d11 == 0.0) {
   23833          90 :      i10 = i5 + 8 | 0;
   23834          90 :      i7 = HEAP32[i10 >> 2] | 0;
   23835          90 :      HEAP32[i10 >> 2] = i7 + 16;
   23836          90 :      i5 = _luaS_newlstr(i5, i9, 8) | 0;
   23837          90 :      HEAP32[i7 >> 2] = i5;
   23838          90 :      HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
   23839          90 :      i5 = _addk(i4, (HEAP32[i10 >> 2] | 0) + -16 | 0, i8) | 0;
   23840          90 :      HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16;
   23841          90 :     } else {
   23842          90 :      i5 = _addk(i4, i8, i8) | 0;
   23843          90 :     }
   23844          90 :     i6 = i1 << 6;
   23845          90 :     if ((i5 | 0) < 262144) {
   23846          90 :      _luaK_code(i4, i6 | i5 << 14 | 1) | 0;
   23847          90 :      break L1;
   23848          90 :     } else {
   23849          90 :      _luaK_code(i4, i6 | 2) | 0;
   23850          90 :      _luaK_code(i4, i5 << 6 | 39) | 0;
   23851          90 :      break L1;
   23852          90 :     }
   23853          90 :    }
   23854          90 :   case 2:
   23855          90 :   case 3:
   23856          90 :    {
   23857          90 :     _luaK_code(i4, i1 << 6 | ((i10 | 0) == 2) << 23 | 3) | 0;
   23858          90 :     break;
   23859          90 :    }
   23860          90 :   case 4:
   23861          90 :    {
   23862          90 :     i6 = HEAP32[i3 + 8 >> 2] | 0;
   23863          90 :     i5 = i1 << 6;
   23864          90 :     if ((i6 | 0) < 262144) {
   23865          90 :      _luaK_code(i4, i5 | i6 << 14 | 1) | 0;
   23866          90 :      break L1;
   23867          90 :     } else {
   23868          90 :      _luaK_code(i4, i5 | 2) | 0;
   23869          90 :      _luaK_code(i4, i6 << 6 | 39) | 0;
   23870          90 :      break L1;
   23871          90 :     }
   23872          90 :    }
   23873          90 :   case 1:
   23874          90 :    {
   23875          90 :     i9 = i1 + 1 | 0;
   23876          90 :     i8 = HEAP32[i4 + 20 >> 2] | 0;
   23877          90 :     do {
   23878          90 :      if ((i8 | 0) > (HEAP32[i4 + 24 >> 2] | 0) ? (i5 = (HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0) + (i8 + -1 << 2) | 0, i6 = HEAP32[i5 >> 2] | 0, (i6 & 63 | 0) == 4) : 0) {
   23879          90 :       i10 = i6 >>> 6 & 255;
   23880          90 :       i8 = i10 + (i6 >>> 23) | 0;
   23881          90 :       if (!((i10 | 0) <= (i1 | 0) ? (i8 + 1 | 0) >= (i1 | 0) : 0)) {
   23882          90 :        i7 = 6;
   23883          90 :       }
   23884          90 :       if ((i7 | 0) == 6 ? (i10 | 0) < (i1 | 0) | (i10 | 0) > (i9 | 0) : 0) {
   23885          90 :        break;
   23886          90 :       }
   23887          90 :       i4 = (i10 | 0) < (i1 | 0) ? i10 : i1;
   23888          90 :       HEAP32[i5 >> 2] = i4 << 6 & 16320 | i6 & 8372287 | ((i8 | 0) > (i1 | 0) ? i8 : i1) - i4 << 23;
   23889          90 :       break L1;
   23890          90 :      }
   23891          90 :     } while (0);
   23892          90 :     _luaK_code(i4, i1 << 6 | 4) | 0;
   23893          90 :     break;
   23894          90 :    }
   23895          90 :   case 6:
   23896          90 :    {
   23897          90 :     i5 = HEAP32[i3 + 8 >> 2] | 0;
   23898          90 :     if ((i5 | 0) != (i1 | 0)) {
   23899          90 :      _luaK_code(i4, i5 << 23 | i1 << 6) | 0;
   23900          90 :     }
   23901          90 :     break;
   23902          90 :    }
   23903          90 :   case 11:
   23904          90 :    {
   23905          90 :     i10 = (HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i3 + 8 >> 2] << 2) | 0;
   23906          90 :     HEAP32[i10 >> 2] = HEAP32[i10 >> 2] & -16321 | i1 << 6 & 16320;
   23907          90 :     break;
   23908          90 :    }
   23909          90 :   default:
   23910          90 :    {
   23911          90 :     STACKTOP = i2;
   23912          90 :     return;
   23913          90 :    }
   23914          90 :   }
   23915          90 :  } while (0);
   23916          90 :  HEAP32[i3 + 8 >> 2] = i1;
   23917          90 :  HEAP32[i3 >> 2] = 6;
   23918          90 :  STACKTOP = i2;
   23919          90 :  return;
   23920          90 : }
   23921           1 : function _unroll(i3, i4) {
   23922           0 :  i3 = i3 | 0;
   23923           0 :  i4 = i4 | 0;
   23924           0 :  var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
   23925           0 :  i9 = STACKTOP;
   23926           0 :  i11 = i3 + 16 | 0;
   23927           0 :  i13 = HEAP32[i11 >> 2] | 0;
   23928           0 :  i5 = i3 + 72 | 0;
   23929           0 :  if ((i13 | 0) == (i5 | 0)) {
   23930           0 :   STACKTOP = i9;
   23931           0 :   return;
   23932           0 :  }
   23933           0 :  i6 = i3 + 8 | 0;
   23934           0 :  i10 = i3 + 40 | 0;
   23935           0 :  i7 = i3 + 20 | 0;
   23936           0 :  i8 = i3 + 28 | 0;
   23937           0 :  i4 = i3 + 68 | 0;
   23938           0 :  do {
   23939           0 :   i12 = i13 + 18 | 0;
   23940           0 :   i14 = HEAP8[i12] | 0;
   23941           0 :   if ((i14 & 1) == 0) {
   23942           0 :    i14 = i14 & 255;
   23943           0 :    if ((i14 & 16 | 0) != 0) {
   23944           0 :     HEAP8[i12] = i14 & 239;
   23945           0 :     HEAP32[i4 >> 2] = HEAP32[i13 + 32 >> 2];
   23946           0 :    }
   23947           0 :    if ((HEAP16[i13 + 16 >> 1] | 0) == -1 ? (i2 = (HEAP32[i11 >> 2] | 0) + 4 | 0, i1 = HEAP32[i6 >> 2] | 0, (HEAP32[i2 >> 2] | 0) >>> 0 < i1 >>> 0) : 0) {
   23948           0 :     HEAP32[i2 >> 2] = i1;
   23949           0 :    }
   23950           0 :    i14 = HEAP8[i12] | 0;
   23951           0 :    if ((i14 & 32) == 0) {
   23952           0 :     HEAP8[i13 + 37 | 0] = 1;
   23953           0 :    }
   23954           0 :    HEAP8[i12] = i14 & 199 | 8;
   23955           0 :    i14 = FUNCTION_TABLE_ii[HEAP32[i13 + 28 >> 2] & 255](i3) | 0;
   23956           0 :    i14 = (HEAP32[i6 >> 2] | 0) + (0 - i14 << 4) | 0;
   23957           0 :    i13 = HEAP32[i11 >> 2] | 0;
   23958           0 :    i12 = HEAPU8[i10] | 0;
   23959           0 :    if ((i12 & 6 | 0) == 0) {
   23960           0 :     i15 = i13 + 8 | 0;
   23961           0 :    } else {
   23962           0 :     if ((i12 & 2 | 0) != 0) {
   23963           0 :      i14 = i14 - (HEAP32[i8 >> 2] | 0) | 0;
   23964           0 :      _luaD_hook(i3, 1, -1);
   23965           0 :      i14 = (HEAP32[i8 >> 2] | 0) + i14 | 0;
   23966           0 :     }
   23967           0 :     i15 = i13 + 8 | 0;
   23968           0 :     HEAP32[i7 >> 2] = HEAP32[(HEAP32[i15 >> 2] | 0) + 28 >> 2];
   23969           0 :    }
   23970           0 :    i12 = HEAP32[i13 >> 2] | 0;
   23971           0 :    i13 = HEAP16[i13 + 16 >> 1] | 0;
   23972           0 :    HEAP32[i11 >> 2] = HEAP32[i15 >> 2];
   23973           0 :    L25 : do {
   23974           0 :     if (!(i13 << 16 >> 16 == 0)) {
   23975           0 :      i15 = i13 << 16 >> 16;
   23976           0 :      if (i14 >>> 0 < (HEAP32[i6 >> 2] | 0) >>> 0) {
   23977           0 :       i13 = i14;
   23978           0 :       i14 = i15;
   23979           0 :       i15 = i12;
   23980           0 :       while (1) {
   23981           0 :        i12 = i15 + 16 | 0;
   23982           0 :        i18 = i13;
   23983           0 :        i17 = HEAP32[i18 + 4 >> 2] | 0;
   23984           0 :        i16 = i15;
   23985           0 :        HEAP32[i16 >> 2] = HEAP32[i18 >> 2];
   23986           0 :        HEAP32[i16 + 4 >> 2] = i17;
   23987           0 :        HEAP32[i15 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
   23988           0 :        i14 = i14 + -1 | 0;
   23989           0 :        i13 = i13 + 16 | 0;
   23990           0 :        if ((i14 | 0) == 0) {
   23991           0 :         break L25;
   23992           0 :        }
   23993           0 :        if (i13 >>> 0 < (HEAP32[i6 >> 2] | 0) >>> 0) {
   23994           0 :         i15 = i12;
   23995           0 :        } else {
   23996           0 :         i13 = i14;
   23997           0 :         break;
   23998           0 :        }
   23999           0 :       }
   24000           0 :      } else {
   24001           0 :       i13 = i15;
   24002           0 :      }
   24003           0 :      if ((i13 | 0) > 0) {
   24004           0 :       i14 = i13;
   24005           0 :       i15 = i12;
   24006           0 :       while (1) {
   24007           0 :        i14 = i14 + -1 | 0;
   24008           0 :        HEAP32[i15 + 8 >> 2] = 0;
   24009           0 :        if ((i14 | 0) <= 0) {
   24010           0 :         break;
   24011           0 :        } else {
   24012           0 :         i15 = i15 + 16 | 0;
   24013           0 :        }
   24014           0 :       }
   24015           0 :       i12 = i12 + (i13 << 4) | 0;
   24016           0 :      }
   24017           0 :     }
   24018           0 :    } while (0);
   24019           0 :    HEAP32[i6 >> 2] = i12;
   24020           0 :   } else {
   24021           0 :    _luaV_finishOp(i3);
   24022           0 :    _luaV_execute(i3);
   24023           0 :   }
   24024           0 :   i13 = HEAP32[i11 >> 2] | 0;
   24025           0 :  } while ((i13 | 0) != (i5 | 0));
   24026           0 :  STACKTOP = i9;
   24027           0 :  return;
   24028           1 : }
   24029           1 : function _traverseephemeron(i1, i2) {
   24030           0 :  i1 = i1 | 0;
   24031           0 :  i2 = i2 | 0;
   24032           0 :  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
   24033           0 :  i3 = STACKTOP;
   24034           0 :  i11 = i2 + 16 | 0;
   24035           0 :  i9 = HEAP32[i11 >> 2] | 0;
   24036           0 :  i5 = i9 + (1 << (HEAPU8[i2 + 7 | 0] | 0) << 5) | 0;
   24037           0 :  i10 = i2 + 28 | 0;
   24038           0 :  i13 = HEAP32[i10 >> 2] | 0;
   24039           0 :  if ((i13 | 0) > 0) {
   24040           0 :   i9 = i2 + 12 | 0;
   24041           0 :   i12 = 0;
   24042           0 :   i8 = 0;
   24043           0 :   do {
   24044           0 :    i14 = HEAP32[i9 >> 2] | 0;
   24045           0 :    if ((HEAP32[i14 + (i12 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i7 = HEAP32[i14 + (i12 << 4) >> 2] | 0, !((HEAP8[i7 + 5 | 0] & 3) == 0)) : 0) {
   24046           0 :     _reallymarkobject(i1, i7);
   24047           0 :     i13 = HEAP32[i10 >> 2] | 0;
   24048           0 :     i8 = 1;
   24049           0 :    }
   24050           0 :    i12 = i12 + 1 | 0;
   24051           0 :   } while ((i12 | 0) < (i13 | 0));
   24052           0 :   i9 = HEAP32[i11 >> 2] | 0;
   24053           0 :  } else {
   24054           0 :   i8 = 0;
   24055           0 :  }
   24056           0 :  if (i9 >>> 0 < i5 >>> 0) {
   24057           0 :   i7 = 0;
   24058           0 :   i10 = 0;
   24059           0 :   do {
   24060           0 :    i11 = i9 + 8 | 0;
   24061           0 :    i12 = HEAP32[i11 >> 2] | 0;
   24062           0 :    i14 = i9 + 24 | 0;
   24063           0 :    i13 = HEAP32[i14 >> 2] | 0;
   24064           0 :    i15 = (i13 & 64 | 0) == 0;
   24065           0 :    L14 : do {
   24066           0 :     if ((i12 | 0) == 0) {
   24067           0 :      if (!i15 ? !((HEAP8[(HEAP32[i9 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
   24068           0 :       HEAP32[i14 >> 2] = 11;
   24069           0 :      }
   24070           0 :     } else {
   24071           0 :      do {
   24072           0 :       if (i15) {
   24073           0 :        i6 = i12;
   24074           0 :        i4 = 18;
   24075           0 :       } else {
   24076           0 :        i14 = HEAP32[i9 + 16 >> 2] | 0;
   24077           0 :        if ((i13 & 15 | 0) == 4) {
   24078           0 :         if ((i14 | 0) == 0) {
   24079           0 :          i6 = i12;
   24080           0 :          i4 = 18;
   24081           0 :          break;
   24082           0 :         }
   24083           0 :         if ((HEAP8[i14 + 5 | 0] & 3) == 0) {
   24084           0 :          i6 = i12;
   24085           0 :          i4 = 18;
   24086           0 :          break;
   24087           0 :         }
   24088           0 :         _reallymarkobject(i1, i14);
   24089           0 :         i6 = HEAP32[i11 >> 2] | 0;
   24090           0 :         i4 = 18;
   24091           0 :         break;
   24092           0 :        }
   24093           0 :        i11 = (i12 & 64 | 0) == 0;
   24094           0 :        if ((HEAP8[i14 + 5 | 0] & 3) == 0) {
   24095           0 :         if (i11) {
   24096           0 :          break L14;
   24097           0 :         } else {
   24098           0 :          break;
   24099           0 :         }
   24100           0 :        }
   24101           0 :        if (i11) {
   24102           0 :         i7 = 1;
   24103           0 :         break L14;
   24104           0 :        }
   24105           0 :        i7 = 1;
   24106           0 :        i10 = (HEAP8[(HEAP32[i9 >> 2] | 0) + 5 | 0] & 3) == 0 ? i10 : 1;
   24107           0 :        break L14;
   24108           0 :       }
   24109           0 :      } while (0);
   24110           0 :      if ((i4 | 0) == 18 ? (i4 = 0, (i6 & 64 | 0) == 0) : 0) {
   24111           0 :       break;
   24112           0 :      }
   24113           0 :      i11 = HEAP32[i9 >> 2] | 0;
   24114           0 :      if (!((HEAP8[i11 + 5 | 0] & 3) == 0)) {
   24115           0 :       _reallymarkobject(i1, i11);
   24116           0 :       i8 = 1;
   24117           0 :      }
   24118           0 :     }
   24119           0 :    } while (0);
   24120           0 :    i9 = i9 + 32 | 0;
   24121           0 :   } while (i9 >>> 0 < i5 >>> 0);
   24122           0 :   if ((i10 | 0) != 0) {
   24123           0 :    i15 = i1 + 96 | 0;
   24124           0 :    HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2];
   24125           0 :    HEAP32[i15 >> 2] = i2;
   24126           0 :    i15 = i8;
   24127           0 :    STACKTOP = i3;
   24128           0 :    return i15 | 0;
   24129           0 :   }
   24130           0 :   if ((i7 | 0) != 0) {
   24131           0 :    i15 = i1 + 100 | 0;
   24132           0 :    HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2];
   24133           0 :    HEAP32[i15 >> 2] = i2;
   24134           0 :    i15 = i8;
   24135           0 :    STACKTOP = i3;
   24136           0 :    return i15 | 0;
   24137           0 :   }
   24138           0 :  }
   24139           0 :  i15 = i1 + 88 | 0;
   24140           0 :  HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2];
   24141           0 :  HEAP32[i15 >> 2] = i2;
   24142           0 :  i15 = i8;
   24143           0 :  STACKTOP = i3;
   24144           0 :  return i15 | 0;
   24145           1 : }
   24146      427137 : function _luaV_gettable(i2, i7, i5, i1) {
   24147      427137 :  i2 = i2 | 0;
   24148      427137 :  i7 = i7 | 0;
   24149      427137 :  i5 = i5 | 0;
   24150      427137 :  i1 = i1 | 0;
   24151      427137 :  var i3 = 0, i4 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   24152      427137 :  i6 = STACKTOP;
   24153      427137 :  STACKTOP = STACKTOP + 16 | 0;
   24154      427137 :  i4 = i6;
   24155      427137 :  i8 = i2 + 12 | 0;
   24156      427137 :  i3 = i7;
   24157      427137 :  i10 = HEAP32[i7 + 8 >> 2] | 0;
   24158      427137 :  i9 = 0;
   24159      427137 :  while (1) {
   24160      427137 :   i7 = i3 + 8 | 0;
   24161      427137 :   if ((i10 | 0) != 69) {
   24162      427137 :    i12 = _luaT_gettmbyobj(i2, i3, 0) | 0;
   24163      427137 :    i10 = HEAP32[i12 + 8 >> 2] | 0;
   24164      427137 :    if ((i10 | 0) == 0) {
   24165      427137 :     i8 = 11;
   24166      427137 :     break;
   24167      427137 :    }
   24168      427137 :   } else {
   24169      427137 :    i12 = HEAP32[i3 >> 2] | 0;
   24170      427137 :    i11 = _luaH_get(i12, i5) | 0;
   24171      427137 :    i10 = i11 + 8 | 0;
   24172      427137 :    if ((HEAP32[i10 >> 2] | 0) != 0) {
   24173      427137 :     i8 = 9;
   24174      427137 :     break;
   24175      427137 :    }
   24176      427137 :    i12 = HEAP32[i12 + 8 >> 2] | 0;
   24177      427137 :    if ((i12 | 0) == 0) {
   24178      427137 :     i8 = 9;
   24179      427137 :     break;
   24180      427137 :    }
   24181      427137 :    if (!((HEAP8[i12 + 6 | 0] & 1) == 0)) {
   24182      427137 :     i8 = 9;
   24183      427137 :     break;
   24184      427137 :    }
   24185      427137 :    i12 = _luaT_gettm(i12, 0, HEAP32[(HEAP32[i8 >> 2] | 0) + 184 >> 2] | 0) | 0;
   24186      427137 :    if ((i12 | 0) == 0) {
   24187      427137 :     i8 = 9;
   24188      427137 :     break;
   24189      427137 :    }
   24190      427137 :    i10 = HEAP32[i12 + 8 >> 2] | 0;
   24191      427137 :   }
   24192      427137 :   i9 = i9 + 1 | 0;
   24193      427137 :   if ((i10 & 15 | 0) == 6) {
   24194      427137 :    i8 = 13;
   24195      427137 :    break;
   24196      427137 :   }
   24197      427137 :   if ((i9 | 0) < 100) {
   24198      427137 :    i3 = i12;
   24199      427137 :   } else {
   24200      427137 :    i8 = 14;
   24201      427137 :    break;
   24202      427137 :   }
   24203      427137 :  }
   24204      427137 :  if ((i8 | 0) == 9) {
   24205      427137 :   i9 = i11;
   24206      427137 :   i11 = HEAP32[i9 + 4 >> 2] | 0;
   24207      427137 :   i12 = i1;
   24208      427137 :   HEAP32[i12 >> 2] = HEAP32[i9 >> 2];
   24209      427137 :   HEAP32[i12 + 4 >> 2] = i11;
   24210      427137 :   HEAP32[i1 + 8 >> 2] = HEAP32[i10 >> 2];
   24211      427137 :   STACKTOP = i6;
   24212      427137 :   return;
   24213      427137 :  } else if ((i8 | 0) == 11) {
   24214      427137 :   _luaG_typeerror(i2, i3, 8944);
   24215      427137 :  } else if ((i8 | 0) == 13) {
   24216      427137 :   i10 = i2 + 28 | 0;
   24217      427137 :   i11 = i1 - (HEAP32[i10 >> 2] | 0) | 0;
   24218      427137 :   i8 = i2 + 8 | 0;
   24219      427137 :   i9 = HEAP32[i8 >> 2] | 0;
   24220      427137 :   HEAP32[i8 >> 2] = i9 + 16;
   24221      427137 :   i13 = i12;
   24222      427137 :   i1 = HEAP32[i13 + 4 >> 2] | 0;
   24223      427137 :   i4 = i9;
   24224      427137 :   HEAP32[i4 >> 2] = HEAP32[i13 >> 2];
   24225      427137 :   HEAP32[i4 + 4 >> 2] = i1;
   24226      427137 :   HEAP32[i9 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
   24227      427137 :   i12 = HEAP32[i8 >> 2] | 0;
   24228      427137 :   HEAP32[i8 >> 2] = i12 + 16;
   24229      427137 :   i9 = HEAP32[i3 + 4 >> 2] | 0;
   24230      427137 :   i4 = i12;
   24231      427137 :   HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
   24232      427137 :   HEAP32[i4 + 4 >> 2] = i9;
   24233      427137 :   HEAP32[i12 + 8 >> 2] = HEAP32[i7 >> 2];
   24234      427137 :   i12 = HEAP32[i8 >> 2] | 0;
   24235      427137 :   HEAP32[i8 >> 2] = i12 + 16;
   24236      427137 :   i4 = i5;
   24237      427137 :   i9 = HEAP32[i4 + 4 >> 2] | 0;
   24238      427137 :   i7 = i12;
   24239      427137 :   HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
   24240      427137 :   HEAP32[i7 + 4 >> 2] = i9;
   24241      427137 :   HEAP32[i12 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
   24242      427137 :   _luaD_call(i2, (HEAP32[i8 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
   24243      427137 :   i12 = HEAP32[i10 >> 2] | 0;
   24244      427137 :   i10 = HEAP32[i8 >> 2] | 0;
   24245      427137 :   i7 = i10 + -16 | 0;
   24246      427137 :   HEAP32[i8 >> 2] = i7;
   24247      427137 :   i8 = HEAP32[i7 + 4 >> 2] | 0;
   24248      427137 :   i9 = i12 + i11 | 0;
   24249      427137 :   HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
   24250      427137 :   HEAP32[i9 + 4 >> 2] = i8;
   24251      427137 :   HEAP32[i12 + (i11 + 8) >> 2] = HEAP32[i10 + -8 >> 2];
   24252      427137 :   STACKTOP = i6;
   24253      427137 :   return;
   24254      427137 :  } else if ((i8 | 0) == 14) {
   24255      427137 :   _luaG_runerror(i2, 8952, i4);
   24256      427137 :  }
   24257      427137 : }
   24258           1 : function _db_getinfo(i1) {
   24259           0 :  i1 = i1 | 0;
   24260           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   24261           0 :  i2 = STACKTOP;
   24262           0 :  STACKTOP = STACKTOP + 112 | 0;
   24263           0 :  i3 = i2;
   24264           0 :  if ((_lua_type(i1, 1) | 0) == 8) {
   24265           0 :   i4 = _lua_tothread(i1, 1) | 0;
   24266           0 :   i7 = 1;
   24267           0 :  } else {
   24268           0 :   i4 = i1;
   24269           0 :   i7 = 0;
   24270           0 :  }
   24271           0 :  i5 = i7 | 2;
   24272           0 :  i6 = _luaL_optlstring(i1, i5, 11784, 0) | 0;
   24273           0 :  i7 = i7 + 1 | 0;
   24274           0 :  do {
   24275           0 :   if ((_lua_isnumber(i1, i7) | 0) != 0) {
   24276           0 :    if ((_lua_getstack(i4, _lua_tointegerx(i1, i7, 0) | 0, i3) | 0) == 0) {
   24277           0 :     _lua_pushnil(i1);
   24278           0 :     i7 = 1;
   24279           0 :     STACKTOP = i2;
   24280           0 :     return i7 | 0;
   24281           0 :    }
   24282           0 :   } else {
   24283           0 :    if ((_lua_type(i1, i7) | 0) == 6) {
   24284           0 :     HEAP32[i3 >> 2] = i6;
   24285           0 :     _lua_pushfstring(i1, 11792, i3) | 0;
   24286           0 :     i6 = _lua_tolstring(i1, -1, 0) | 0;
   24287           0 :     _lua_pushvalue(i1, i7);
   24288           0 :     _lua_xmove(i1, i4, 1);
   24289           0 :     break;
   24290           0 :    }
   24291           0 :    i7 = _luaL_argerror(i1, i7, 11800) | 0;
   24292           0 :    STACKTOP = i2;
   24293           0 :    return i7 | 0;
   24294           0 :   }
   24295           0 :  } while (0);
   24296           0 :  if ((_lua_getinfo(i4, i6, i3) | 0) == 0) {
   24297           0 :   i7 = _luaL_argerror(i1, i5, 11832) | 0;
   24298           0 :   STACKTOP = i2;
   24299           0 :   return i7 | 0;
   24300           0 :  }
   24301           0 :  _lua_createtable(i1, 0, 2);
   24302           0 :  if ((_strchr(i6, 83) | 0) != 0) {
   24303           0 :   _lua_pushstring(i1, HEAP32[i3 + 16 >> 2] | 0) | 0;
   24304           0 :   _lua_setfield(i1, -2, 11848);
   24305           0 :   _lua_pushstring(i1, i3 + 36 | 0) | 0;
   24306           0 :   _lua_setfield(i1, -2, 11856);
   24307           0 :   _lua_pushinteger(i1, HEAP32[i3 + 24 >> 2] | 0);
   24308           0 :   _lua_setfield(i1, -2, 11872);
   24309           0 :   _lua_pushinteger(i1, HEAP32[i3 + 28 >> 2] | 0);
   24310           0 :   _lua_setfield(i1, -2, 11888);
   24311           0 :   _lua_pushstring(i1, HEAP32[i3 + 12 >> 2] | 0) | 0;
   24312           0 :   _lua_setfield(i1, -2, 11904);
   24313           0 :  }
   24314           0 :  if ((_strchr(i6, 108) | 0) != 0) {
   24315           0 :   _lua_pushinteger(i1, HEAP32[i3 + 20 >> 2] | 0);
   24316           0 :   _lua_setfield(i1, -2, 11912);
   24317           0 :  }
   24318           0 :  if ((_strchr(i6, 117) | 0) != 0) {
   24319           0 :   _lua_pushinteger(i1, HEAPU8[i3 + 32 | 0] | 0);
   24320           0 :   _lua_setfield(i1, -2, 11928);
   24321           0 :   _lua_pushinteger(i1, HEAPU8[i3 + 33 | 0] | 0);
   24322           0 :   _lua_setfield(i1, -2, 11936);
   24323           0 :   _lua_pushboolean(i1, HEAP8[i3 + 34 | 0] | 0);
   24324           0 :   _lua_setfield(i1, -2, 11944);
   24325           0 :  }
   24326           0 :  if ((_strchr(i6, 110) | 0) != 0) {
   24327           0 :   _lua_pushstring(i1, HEAP32[i3 + 4 >> 2] | 0) | 0;
   24328           0 :   _lua_setfield(i1, -2, 11960);
   24329           0 :   _lua_pushstring(i1, HEAP32[i3 + 8 >> 2] | 0) | 0;
   24330           0 :   _lua_setfield(i1, -2, 11968);
   24331           0 :  }
   24332           0 :  if ((_strchr(i6, 116) | 0) != 0) {
   24333           0 :   _lua_pushboolean(i1, HEAP8[i3 + 35 | 0] | 0);
   24334           0 :   _lua_setfield(i1, -2, 11984);
   24335           0 :  }
   24336           0 :  if ((_strchr(i6, 76) | 0) != 0) {
   24337           0 :   if ((i4 | 0) == (i1 | 0)) {
   24338           0 :    _lua_pushvalue(i1, -2);
   24339           0 :    _lua_remove(i1, -3);
   24340           0 :   } else {
   24341           0 :    _lua_xmove(i4, i1, 1);
   24342           0 :   }
   24343           0 :   _lua_setfield(i1, -2, 12e3);
   24344           0 :  }
   24345           0 :  if ((_strchr(i6, 102) | 0) == 0) {
   24346           0 :   i7 = 1;
   24347           0 :   STACKTOP = i2;
   24348           0 :   return i7 | 0;
   24349           0 :  }
   24350           0 :  if ((i4 | 0) == (i1 | 0)) {
   24351           0 :   _lua_pushvalue(i1, -2);
   24352           0 :   _lua_remove(i1, -3);
   24353           0 :  } else {
   24354           0 :   _lua_xmove(i4, i1, 1);
   24355           0 :  }
   24356           0 :  _lua_setfield(i1, -2, 12016);
   24357           0 :  i7 = 1;
   24358           0 :  STACKTOP = i2;
   24359           0 :  return i7 | 0;
   24360           1 : }
   24361           1 : function _luaL_traceback(i4, i1, i9, i7) {
   24362           0 :  i4 = i4 | 0;
   24363           0 :  i1 = i1 | 0;
   24364           0 :  i9 = i9 | 0;
   24365           0 :  i7 = i7 | 0;
   24366           0 :  var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
   24367           0 :  i3 = STACKTOP;
   24368           0 :  STACKTOP = STACKTOP + 208 | 0;
   24369           0 :  i6 = i3;
   24370           0 :  i5 = i3 + 100 | 0;
   24371           0 :  i2 = _lua_gettop(i4) | 0;
   24372           0 :  i8 = 1;
   24373           0 :  i10 = 1;
   24374           0 :  while (1) {
   24375           0 :   if ((_lua_getstack(i1, i8, i6) | 0) == 0) {
   24376           0 :    break;
   24377           0 :   } else {
   24378           0 :    i10 = i8;
   24379           0 :    i8 = i8 << 1;
   24380           0 :   }
   24381           0 :  }
   24382           0 :  if ((i10 | 0) < (i8 | 0)) {
   24383           0 :   while (1) {
   24384           0 :    i11 = (i8 + i10 | 0) / 2 | 0;
   24385           0 :    i12 = (_lua_getstack(i1, i11, i6) | 0) == 0;
   24386           0 :    i8 = i12 ? i11 : i8;
   24387           0 :    i10 = i12 ? i10 : i11 + 1 | 0;
   24388           0 :    if ((i10 | 0) >= (i8 | 0)) {
   24389           0 :     i10 = i8;
   24390           0 :     break;
   24391           0 :    }
   24392           0 :   }
   24393           0 :  } else {
   24394           0 :   i10 = i8;
   24395           0 :  }
   24396           0 :  i8 = (i10 + -1 | 0) > 22 ? 12 : 0;
   24397           0 :  if ((i9 | 0) != 0) {
   24398           0 :   HEAP32[i6 >> 2] = i9;
   24399           0 :   _lua_pushfstring(i4, 944, i6) | 0;
   24400           0 :  }
   24401           0 :  _lua_pushlstring(i4, 952, 16) | 0;
   24402           0 :  if ((_lua_getstack(i1, i7, i5) | 0) == 0) {
   24403           0 :   i17 = _lua_gettop(i4) | 0;
   24404           0 :   i17 = i17 - i2 | 0;
   24405           0 :   _lua_concat(i4, i17);
   24406           0 :   STACKTOP = i3;
   24407           0 :   return;
   24408           0 :  }
   24409           0 :  i10 = i10 + -11 | 0;
   24410           0 :  i13 = i5 + 36 | 0;
   24411           0 :  i9 = i5 + 20 | 0;
   24412           0 :  i16 = i5 + 8 | 0;
   24413           0 :  i12 = i5 + 12 | 0;
   24414           0 :  i15 = i5 + 24 | 0;
   24415           0 :  i14 = i5 + 35 | 0;
   24416           0 :  i11 = i5 + 4 | 0;
   24417           0 :  do {
   24418           0 :   i7 = i7 + 1 | 0;
   24419           0 :   if ((i7 | 0) == (i8 | 0)) {
   24420           0 :    _lua_pushlstring(i4, 976, 5) | 0;
   24421           0 :    i7 = i10;
   24422           0 :   } else {
   24423           0 :    _lua_getinfo(i1, 984, i5) | 0;
   24424           0 :    HEAP32[i6 >> 2] = i13;
   24425           0 :    _lua_pushfstring(i4, 992, i6) | 0;
   24426           0 :    i17 = HEAP32[i9 >> 2] | 0;
   24427           0 :    if ((i17 | 0) > 0) {
   24428           0 :     HEAP32[i6 >> 2] = i17;
   24429           0 :     _lua_pushfstring(i4, 1e3, i6) | 0;
   24430           0 :    }
   24431           0 :    _lua_pushlstring(i4, 1008, 4) | 0;
   24432           0 :    do {
   24433           0 :     if ((HEAP8[HEAP32[i16 >> 2] | 0] | 0) == 0) {
   24434           0 :      i17 = HEAP8[HEAP32[i12 >> 2] | 0] | 0;
   24435           0 :      if (i17 << 24 >> 24 == 109) {
   24436           0 :       _lua_pushlstring(i4, 1800, 10) | 0;
   24437           0 :       break;
   24438           0 :      } else if (i17 << 24 >> 24 == 67) {
   24439           0 :       if ((_pushglobalfuncname(i4, i5) | 0) == 0) {
   24440           0 :        _lua_pushlstring(i4, 1112, 1) | 0;
   24441           0 :        break;
   24442           0 :       } else {
   24443           0 :        HEAP32[i6 >> 2] = _lua_tolstring(i4, -1, 0) | 0;
   24444           0 :        _lua_pushfstring(i4, 1784, i6) | 0;
   24445           0 :        _lua_remove(i4, -2);
   24446           0 :        break;
   24447           0 :       }
   24448           0 :      } else {
   24449           0 :       i17 = HEAP32[i15 >> 2] | 0;
   24450           0 :       HEAP32[i6 >> 2] = i13;
   24451           0 :       HEAP32[i6 + 4 >> 2] = i17;
   24452           0 :       _lua_pushfstring(i4, 1816, i6) | 0;
   24453           0 :       break;
   24454           0 :      }
   24455           0 :     } else {
   24456           0 :      HEAP32[i6 >> 2] = HEAP32[i11 >> 2];
   24457           0 :      _lua_pushfstring(i4, 1784, i6) | 0;
   24458           0 :     }
   24459           0 :    } while (0);
   24460           0 :    if ((HEAP8[i14] | 0) != 0) {
   24461           0 :     _lua_pushlstring(i4, 1016, 20) | 0;
   24462           0 :    }
   24463           0 :    _lua_concat(i4, (_lua_gettop(i4) | 0) - i2 | 0);
   24464           0 :   }
   24465           0 :  } while ((_lua_getstack(i1, i7, i5) | 0) != 0);
   24466           0 :  i17 = _lua_gettop(i4) | 0;
   24467           0 :  i17 = i17 - i2 | 0;
   24468           0 :  _lua_concat(i4, i17);
   24469           0 :  STACKTOP = i3;
   24470           0 :  return;
   24471           1 : }
   24472          83 : function _luaK_exp2RK(i3, i1) {
   24473          83 :  i3 = i3 | 0;
   24474          83 :  i1 = i1 | 0;
   24475          83 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0;
   24476          83 :  i2 = STACKTOP;
   24477          83 :  STACKTOP = STACKTOP + 32 | 0;
   24478          83 :  i7 = i2 + 16 | 0;
   24479          83 :  i6 = i2;
   24480          83 :  i4 = i1 + 16 | 0;
   24481          83 :  i5 = i1 + 20 | 0;
   24482          83 :  i10 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0);
   24483          83 :  _luaK_dischargevars(i3, i1);
   24484          83 :  do {
   24485          83 :   if (!i10) {
   24486          83 :    if ((HEAP32[i1 >> 2] | 0) == 6) {
   24487          83 :     i10 = HEAP32[i1 + 8 >> 2] | 0;
   24488          83 :     if ((HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0)) {
   24489          83 :      break;
   24490          83 :     }
   24491          83 :     if ((i10 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) {
   24492          83 :      _exp2reg(i3, i1, i10);
   24493          83 :      break;
   24494          83 :     }
   24495          83 :    }
   24496          83 :    _luaK_exp2nextreg(i3, i1);
   24497          83 :   }
   24498          83 :  } while (0);
   24499          83 :  i10 = HEAP32[i1 >> 2] | 0;
   24500          83 :  switch (i10 | 0) {
   24501          83 :  case 4:
   24502          83 :   {
   24503          83 :    i8 = HEAP32[i1 + 8 >> 2] | 0;
   24504          83 :    i9 = 18;
   24505          83 :    break;
   24506          83 :   }
   24507          83 :  case 1:
   24508          83 :  case 3:
   24509          83 :  case 2:
   24510          83 :   {
   24511          83 :    if ((HEAP32[i3 + 32 >> 2] | 0) < 256) {
   24512          83 :     if ((i10 | 0) == 1) {
   24513          83 :      HEAP32[i6 + 8 >> 2] = 0;
   24514          83 :      HEAP32[i7 >> 2] = HEAP32[i3 + 4 >> 2];
   24515          83 :      HEAP32[i7 + 8 >> 2] = 69;
   24516          83 :      i3 = _addk(i3, i7, i6) | 0;
   24517          83 :     } else {
   24518          83 :      HEAP32[i7 >> 2] = (i10 | 0) == 2;
   24519          83 :      HEAP32[i7 + 8 >> 2] = 1;
   24520          83 :      i3 = _addk(i3, i7, i7) | 0;
   24521          83 :     }
   24522          83 :     HEAP32[i1 + 8 >> 2] = i3;
   24523          83 :     HEAP32[i1 >> 2] = 4;
   24524          83 :     i10 = i3 | 256;
   24525          83 :     STACKTOP = i2;
   24526          83 :     return i10 | 0;
   24527          83 :    }
   24528          83 :    break;
   24529          83 :   }
   24530          83 :  case 5:
   24531          83 :   {
   24532          83 :    i9 = i1 + 8 | 0;
   24533          83 :    d11 = +HEAPF64[i9 >> 3];
   24534          83 :    HEAPF64[i7 >> 3] = d11;
   24535          83 :    i8 = HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0;
   24536          83 :    HEAPF64[i6 >> 3] = d11;
   24537          83 :    HEAP32[i6 + 8 >> 2] = 3;
   24538          83 :    if (d11 != d11 | 0.0 != 0.0 | d11 == 0.0) {
   24539          83 :     i10 = i8 + 8 | 0;
   24540          83 :     i12 = HEAP32[i10 >> 2] | 0;
   24541          83 :     HEAP32[i10 >> 2] = i12 + 16;
   24542          83 :     i8 = _luaS_newlstr(i8, i7, 8) | 0;
   24543          83 :     HEAP32[i12 >> 2] = i8;
   24544          83 :     HEAP32[i12 + 8 >> 2] = HEAPU8[i8 + 4 | 0] | 0 | 64;
   24545          83 :     i8 = _addk(i3, (HEAP32[i10 >> 2] | 0) + -16 | 0, i6) | 0;
   24546          83 :     HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16;
   24547          83 :    } else {
   24548          83 :     i8 = _addk(i3, i6, i6) | 0;
   24549          83 :    }
   24550          83 :    HEAP32[i9 >> 2] = i8;
   24551          83 :    HEAP32[i1 >> 2] = 4;
   24552          83 :    i9 = 18;
   24553          83 :    break;
   24554          83 :   }
   24555          83 :  default:
   24556          83 :   {}
   24557          83 :  }
   24558          83 :  if ((i9 | 0) == 18 ? (i8 | 0) < 256 : 0) {
   24559          83 :   i12 = i8 | 256;
   24560          83 :   STACKTOP = i2;
   24561          83 :   return i12 | 0;
   24562          83 :  }
   24563          83 :  _luaK_dischargevars(i3, i1);
   24564          83 :  if ((HEAP32[i1 >> 2] | 0) == 6) {
   24565          83 :   i7 = i1 + 8 | 0;
   24566          83 :   i6 = HEAP32[i7 >> 2] | 0;
   24567          83 :   if ((HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0)) {
   24568          83 :    i12 = i6;
   24569          83 :    STACKTOP = i2;
   24570          83 :    return i12 | 0;
   24571          83 :   }
   24572          83 :   if ((i6 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) {
   24573          83 :    _exp2reg(i3, i1, i6);
   24574          83 :    i12 = HEAP32[i7 >> 2] | 0;
   24575          83 :    STACKTOP = i2;
   24576          83 :    return i12 | 0;
   24577          83 :   }
   24578          83 :  } else {
   24579          83 :   i7 = i1 + 8 | 0;
   24580          83 :  }
   24581          83 :  _luaK_exp2nextreg(i3, i1);
   24582          83 :  i12 = HEAP32[i7 >> 2] | 0;
   24583          83 :  STACKTOP = i2;
   24584          83 :  return i12 | 0;
   24585          83 : }
   24586           1 : function _os_date(i1) {
   24587           0 :  i1 = i1 | 0;
   24588           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
   24589           0 :  i2 = STACKTOP;
   24590           0 :  STACKTOP = STACKTOP + 1264 | 0;
   24591           0 :  i4 = i2;
   24592           0 :  i7 = i2 + 1048 | 0;
   24593           0 :  i6 = i2 + 1256 | 0;
   24594           0 :  i3 = i2 + 8 | 0;
   24595           0 :  i5 = i2 + 1056 | 0;
   24596           0 :  i12 = _luaL_optlstring(i1, 1, 6064, 0) | 0;
   24597           0 :  if ((_lua_type(i1, 2) | 0) < 1) {
   24598           0 :   i8 = _time(0) | 0;
   24599           0 :  } else {
   24600           0 :   i8 = ~~+_luaL_checknumber(i1, 2);
   24601           0 :  }
   24602           0 :  HEAP32[i7 >> 2] = i8;
   24603           0 :  if ((HEAP8[i12] | 0) == 33) {
   24604           0 :   i12 = i12 + 1 | 0;
   24605           0 :   i10 = _gmtime(i7 | 0) | 0;
   24606           0 :  } else {
   24607           0 :   i10 = _localtime(i7 | 0) | 0;
   24608           0 :  }
   24609           0 :  if ((i10 | 0) == 0) {
   24610           0 :   _lua_pushnil(i1);
   24611           0 :   STACKTOP = i2;
   24612           0 :   return 1;
   24613           0 :  }
   24614           0 :  if ((_strcmp(i12, 6072) | 0) == 0) {
   24615           0 :   _lua_createtable(i1, 0, 9);
   24616           0 :   _lua_pushinteger(i1, HEAP32[i10 >> 2] | 0);
   24617           0 :   _lua_setfield(i1, -2, 5864);
   24618           0 :   _lua_pushinteger(i1, HEAP32[i10 + 4 >> 2] | 0);
   24619           0 :   _lua_setfield(i1, -2, 5872);
   24620           0 :   _lua_pushinteger(i1, HEAP32[i10 + 8 >> 2] | 0);
   24621           0 :   _lua_setfield(i1, -2, 5880);
   24622           0 :   _lua_pushinteger(i1, HEAP32[i10 + 12 >> 2] | 0);
   24623           0 :   _lua_setfield(i1, -2, 5888);
   24624           0 :   _lua_pushinteger(i1, (HEAP32[i10 + 16 >> 2] | 0) + 1 | 0);
   24625           0 :   _lua_setfield(i1, -2, 5896);
   24626           0 :   _lua_pushinteger(i1, (HEAP32[i10 + 20 >> 2] | 0) + 1900 | 0);
   24627           0 :   _lua_setfield(i1, -2, 5904);
   24628           0 :   _lua_pushinteger(i1, (HEAP32[i10 + 24 >> 2] | 0) + 1 | 0);
   24629           0 :   _lua_setfield(i1, -2, 6080);
   24630           0 :   _lua_pushinteger(i1, (HEAP32[i10 + 28 >> 2] | 0) + 1 | 0);
   24631           0 :   _lua_setfield(i1, -2, 6088);
   24632           0 :   i3 = HEAP32[i10 + 32 >> 2] | 0;
   24633           0 :   if ((i3 | 0) < 0) {
   24634           0 :    STACKTOP = i2;
   24635           0 :    return 1;
   24636           0 :   }
   24637           0 :   _lua_pushboolean(i1, i3);
   24638           0 :   _lua_setfield(i1, -2, 5912);
   24639           0 :   STACKTOP = i2;
   24640           0 :   return 1;
   24641           0 :  }
   24642           0 :  HEAP8[i6] = 37;
   24643           0 :  _luaL_buffinit(i1, i3);
   24644           0 :  i11 = i3 + 8 | 0;
   24645           0 :  i9 = i3 + 4 | 0;
   24646           0 :  i8 = i6 + 1 | 0;
   24647           0 :  i7 = i6 + 2 | 0;
   24648           0 :  while (1) {
   24649           0 :   i14 = HEAP8[i12] | 0;
   24650           0 :   if (i14 << 24 >> 24 == 0) {
   24651           0 :    break;
   24652           0 :   } else if (!(i14 << 24 >> 24 == 37)) {
   24653           0 :    i13 = HEAP32[i11 >> 2] | 0;
   24654           0 :    if (!(i13 >>> 0 < (HEAP32[i9 >> 2] | 0) >>> 0)) {
   24655           0 :     _luaL_prepbuffsize(i3, 1) | 0;
   24656           0 :     i13 = HEAP32[i11 >> 2] | 0;
   24657           0 :     i14 = HEAP8[i12] | 0;
   24658           0 :    }
   24659           0 :    HEAP32[i11 >> 2] = i13 + 1;
   24660           0 :    HEAP8[(HEAP32[i3 >> 2] | 0) + i13 | 0] = i14;
   24661           0 :    i12 = i12 + 1 | 0;
   24662           0 :    continue;
   24663           0 :   }
   24664           0 :   i13 = i12 + 1 | 0;
   24665           0 :   i12 = i12 + 2 | 0;
   24666           0 :   i14 = HEAP8[i13] | 0;
   24667           0 :   if (!(i14 << 24 >> 24 == 0) ? (_memchr(6096, i14 << 24 >> 24, 23) | 0) != 0 : 0) {
   24668           0 :    HEAP8[i8] = i14;
   24669           0 :    HEAP8[i7] = 0;
   24670           0 :   } else {
   24671           0 :    HEAP32[i4 >> 2] = i13;
   24672           0 :    _luaL_argerror(i1, 1, _lua_pushfstring(i1, 6120, i4) | 0) | 0;
   24673           0 :    i12 = i13;
   24674           0 :   }
   24675           0 :   _luaL_addlstring(i3, i5, _strftime(i5 | 0, 200, i6 | 0, i10 | 0) | 0);
   24676           0 :  }
   24677           0 :  _luaL_pushresult(i3);
   24678           0 :  STACKTOP = i2;
   24679           0 :  return 1;
   24680           1 : }
   24681           1 : function _luaV_finishOp(i3) {
   24682           0 :  i3 = i3 | 0;
   24683           0 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
   24684           0 :  i1 = STACKTOP;
   24685           0 :  i8 = HEAP32[i3 + 16 >> 2] | 0;
   24686           0 :  i7 = i8 + 24 | 0;
   24687           0 :  i4 = HEAP32[i7 >> 2] | 0;
   24688           0 :  i5 = i8 + 28 | 0;
   24689           0 :  i2 = HEAP32[(HEAP32[i5 >> 2] | 0) + -4 >> 2] | 0;
   24690           0 :  i6 = i2 & 63;
   24691           0 :  switch (i6 | 0) {
   24692           0 :  case 34:
   24693           0 :   {
   24694           0 :    HEAP32[i3 + 8 >> 2] = HEAP32[i8 + 4 >> 2];
   24695           0 :    STACKTOP = i1;
   24696           0 :    return;
   24697           0 :   }
   24698           0 :  case 24:
   24699           0 :  case 25:
   24700           0 :  case 26:
   24701           0 :   {
   24702           0 :    i7 = i3 + 8 | 0;
   24703           0 :    i8 = HEAP32[i7 >> 2] | 0;
   24704           0 :    i9 = HEAP32[i8 + -8 >> 2] | 0;
   24705           0 :    if ((i9 | 0) != 0) {
   24706           0 :     if ((i9 | 0) == 1) {
   24707           0 :      i9 = (HEAP32[i8 + -16 >> 2] | 0) == 0;
   24708           0 :     } else {
   24709           0 :      i9 = 0;
   24710           0 :     }
   24711           0 :    } else {
   24712           0 :     i9 = 1;
   24713           0 :    }
   24714           0 :    i9 = i9 & 1;
   24715           0 :    i10 = i9 ^ 1;
   24716           0 :    HEAP32[i7 >> 2] = i8 + -16;
   24717           0 :    if ((i6 | 0) == 26) {
   24718           0 :     i8 = (HEAP32[(_luaT_gettmbyobj(i3, i4 + (i2 >>> 23 << 4) | 0, 14) | 0) + 8 >> 2] | 0) == 0;
   24719           0 :     i10 = i8 ? i9 : i10;
   24720           0 :    }
   24721           0 :    if ((i10 | 0) == (i2 >>> 6 & 255 | 0)) {
   24722           0 :     STACKTOP = i1;
   24723           0 :     return;
   24724           0 :    }
   24725           0 :    HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 4;
   24726           0 :    STACKTOP = i1;
   24727           0 :    return;
   24728           0 :   }
   24729           0 :  case 22:
   24730           0 :   {
   24731           0 :    i5 = i3 + 8 | 0;
   24732           0 :    i10 = HEAP32[i5 >> 2] | 0;
   24733           0 :    i6 = i10 + -32 | 0;
   24734           0 :    i4 = i6 - (i4 + (i2 >>> 23 << 4)) | 0;
   24735           0 :    i12 = i10 + -16 | 0;
   24736           0 :    i11 = HEAP32[i12 + 4 >> 2] | 0;
   24737           0 :    i9 = i10 + -48 | 0;
   24738           0 :    HEAP32[i9 >> 2] = HEAP32[i12 >> 2];
   24739           0 :    HEAP32[i9 + 4 >> 2] = i11;
   24740           0 :    HEAP32[i10 + -40 >> 2] = HEAP32[i10 + -8 >> 2];
   24741           0 :    if ((i4 | 0) > 16) {
   24742           0 :     HEAP32[i5 >> 2] = i6;
   24743           0 :     _luaV_concat(i3, i4 >> 4);
   24744           0 :    }
   24745           0 :    i10 = HEAP32[i5 >> 2] | 0;
   24746           0 :    i11 = HEAP32[i7 >> 2] | 0;
   24747           0 :    i12 = i2 >>> 6 & 255;
   24748           0 :    i6 = i10 + -16 | 0;
   24749           0 :    i7 = HEAP32[i6 + 4 >> 2] | 0;
   24750           0 :    i9 = i11 + (i12 << 4) | 0;
   24751           0 :    HEAP32[i9 >> 2] = HEAP32[i6 >> 2];
   24752           0 :    HEAP32[i9 + 4 >> 2] = i7;
   24753           0 :    HEAP32[i11 + (i12 << 4) + 8 >> 2] = HEAP32[i10 + -8 >> 2];
   24754           0 :    HEAP32[i5 >> 2] = HEAP32[i8 + 4 >> 2];
   24755           0 :    STACKTOP = i1;
   24756           0 :    return;
   24757           0 :   }
   24758           0 :  case 12:
   24759           0 :  case 7:
   24760           0 :  case 6:
   24761           0 :  case 21:
   24762           0 :  case 19:
   24763           0 :  case 18:
   24764           0 :  case 17:
   24765           0 :  case 16:
   24766           0 :  case 15:
   24767           0 :  case 14:
   24768           0 :  case 13:
   24769           0 :   {
   24770           0 :    i12 = i3 + 8 | 0;
   24771           0 :    i11 = HEAP32[i12 >> 2] | 0;
   24772           0 :    i8 = i11 + -16 | 0;
   24773           0 :    HEAP32[i12 >> 2] = i8;
   24774           0 :    i12 = i2 >>> 6 & 255;
   24775           0 :    i9 = HEAP32[i8 + 4 >> 2] | 0;
   24776           0 :    i10 = i4 + (i12 << 4) | 0;
   24777           0 :    HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
   24778           0 :    HEAP32[i10 + 4 >> 2] = i9;
   24779           0 :    HEAP32[i4 + (i12 << 4) + 8 >> 2] = HEAP32[i11 + -8 >> 2];
   24780           0 :    STACKTOP = i1;
   24781           0 :    return;
   24782           0 :   }
   24783           0 :  case 29:
   24784           0 :   {
   24785           0 :    if ((i2 & 8372224 | 0) == 0) {
   24786           0 :     STACKTOP = i1;
   24787           0 :     return;
   24788           0 :    }
   24789           0 :    HEAP32[i3 + 8 >> 2] = HEAP32[i8 + 4 >> 2];
   24790           0 :    STACKTOP = i1;
   24791           0 :    return;
   24792           0 :   }
   24793           0 :  default:
   24794           0 :   {
   24795           0 :    STACKTOP = i1;
   24796           0 :    return;
   24797           0 :   }
   24798           0 :  }
   24799           1 : }
   24800           1 : function _auxsort(i2, i4, i5) {
   24801           0 :  i2 = i2 | 0;
   24802           0 :  i4 = i4 | 0;
   24803           0 :  i5 = i5 | 0;
   24804           0 :  var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   24805           0 :  i1 = STACKTOP;
   24806           0 :  STACKTOP = STACKTOP + 16 | 0;
   24807           0 :  i3 = i1;
   24808           0 :  if ((i4 | 0) >= (i5 | 0)) {
   24809           0 :   STACKTOP = i1;
   24810           0 :   return;
   24811           0 :  }
   24812           0 :  while (1) {
   24813           0 :   _lua_rawgeti(i2, 1, i4);
   24814           0 :   _lua_rawgeti(i2, 1, i5);
   24815           0 :   if ((_sort_comp(i2, -1, -2) | 0) == 0) {
   24816           0 :    _lua_settop(i2, -3);
   24817           0 :   } else {
   24818           0 :    _lua_rawseti(i2, 1, i4);
   24819           0 :    _lua_rawseti(i2, 1, i5);
   24820           0 :   }
   24821           0 :   i6 = i5 - i4 | 0;
   24822           0 :   if ((i6 | 0) == 1) {
   24823           0 :    i2 = 24;
   24824           0 :    break;
   24825           0 :   }
   24826           0 :   i7 = (i5 + i4 | 0) / 2 | 0;
   24827           0 :   _lua_rawgeti(i2, 1, i7);
   24828           0 :   _lua_rawgeti(i2, 1, i4);
   24829           0 :   do {
   24830           0 :    if ((_sort_comp(i2, -2, -1) | 0) == 0) {
   24831           0 :     _lua_settop(i2, -2);
   24832           0 :     _lua_rawgeti(i2, 1, i5);
   24833           0 :     if ((_sort_comp(i2, -1, -2) | 0) == 0) {
   24834           0 :      _lua_settop(i2, -3);
   24835           0 :      break;
   24836           0 :     } else {
   24837           0 :      _lua_rawseti(i2, 1, i7);
   24838           0 :      _lua_rawseti(i2, 1, i5);
   24839           0 :      break;
   24840           0 :     }
   24841           0 :    } else {
   24842           0 :     _lua_rawseti(i2, 1, i7);
   24843           0 :     _lua_rawseti(i2, 1, i4);
   24844           0 :    }
   24845           0 :   } while (0);
   24846           0 :   if ((i6 | 0) == 2) {
   24847           0 :    i2 = 24;
   24848           0 :    break;
   24849           0 :   }
   24850           0 :   _lua_rawgeti(i2, 1, i7);
   24851           0 :   _lua_pushvalue(i2, -1);
   24852           0 :   i6 = i5 + -1 | 0;
   24853           0 :   _lua_rawgeti(i2, 1, i6);
   24854           0 :   _lua_rawseti(i2, 1, i7);
   24855           0 :   _lua_rawseti(i2, 1, i6);
   24856           0 :   i7 = i4;
   24857           0 :   i9 = i6;
   24858           0 :   while (1) {
   24859           0 :    i8 = i7 + 1 | 0;
   24860           0 :    _lua_rawgeti(i2, 1, i8);
   24861           0 :    if ((_sort_comp(i2, -1, -2) | 0) != 0) {
   24862           0 :     i7 = i8;
   24863           0 :     while (1) {
   24864           0 :      if ((i7 | 0) >= (i5 | 0)) {
   24865           0 :       _luaL_error(i2, 8216, i3) | 0;
   24866           0 :      }
   24867           0 :      _lua_settop(i2, -2);
   24868           0 :      i8 = i7 + 1 | 0;
   24869           0 :      _lua_rawgeti(i2, 1, i8);
   24870           0 :      if ((_sort_comp(i2, -1, -2) | 0) == 0) {
   24871           0 :       break;
   24872           0 :      } else {
   24873           0 :       i7 = i8;
   24874           0 :      }
   24875           0 :     }
   24876           0 :    }
   24877           0 :    i10 = i9 + -1 | 0;
   24878           0 :    _lua_rawgeti(i2, 1, i10);
   24879           0 :    if ((_sort_comp(i2, -3, -1) | 0) != 0) {
   24880           0 :     i9 = i10;
   24881           0 :     while (1) {
   24882           0 :      if ((i9 | 0) <= (i4 | 0)) {
   24883           0 :       _luaL_error(i2, 8216, i3) | 0;
   24884           0 :      }
   24885           0 :      _lua_settop(i2, -2);
   24886           0 :      i10 = i9 + -1 | 0;
   24887           0 :      _lua_rawgeti(i2, 1, i10);
   24888           0 :      if ((_sort_comp(i2, -3, -1) | 0) == 0) {
   24889           0 :       break;
   24890           0 :      } else {
   24891           0 :       i9 = i10;
   24892           0 :      }
   24893           0 :     }
   24894           0 :    }
   24895           0 :    if ((i9 | 0) <= (i8 | 0)) {
   24896           0 :     break;
   24897           0 :    }
   24898           0 :    _lua_rawseti(i2, 1, i8);
   24899           0 :    _lua_rawseti(i2, 1, i10);
   24900           0 :    i7 = i8;
   24901           0 :    i9 = i10;
   24902           0 :   }
   24903           0 :   _lua_settop(i2, -4);
   24904           0 :   _lua_rawgeti(i2, 1, i6);
   24905           0 :   _lua_rawgeti(i2, 1, i8);
   24906           0 :   _lua_rawseti(i2, 1, i6);
   24907           0 :   _lua_rawseti(i2, 1, i8);
   24908           0 :   i8 = (i8 - i4 | 0) < (i5 - i8 | 0);
   24909           0 :   i9 = i7 + 2 | 0;
   24910           0 :   i10 = i8 ? i9 : i4;
   24911           0 :   i6 = i8 ? i5 : i7;
   24912           0 :   _auxsort(i2, i8 ? i4 : i9, i8 ? i7 : i5);
   24913           0 :   if ((i10 | 0) < (i6 | 0)) {
   24914           0 :    i4 = i10;
   24915           0 :    i5 = i6;
   24916           0 :   } else {
   24917           0 :    i2 = 24;
   24918           0 :    break;
   24919           0 :   }
   24920           0 :  }
   24921           0 :  if ((i2 | 0) == 24) {
   24922           0 :   STACKTOP = i1;
   24923           0 :   return;
   24924           0 :  }
   24925           1 : }
   24926           6 : function _skip_sep(i3) {
   24927           6 :  i3 = i3 | 0;
   24928           6 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   24929           6 :  i1 = STACKTOP;
   24930           6 :  i2 = HEAP32[i3 >> 2] | 0;
   24931           6 :  i4 = i3 + 60 | 0;
   24932           6 :  i10 = HEAP32[i4 >> 2] | 0;
   24933           6 :  i8 = i10 + 4 | 0;
   24934           6 :  i11 = HEAP32[i8 >> 2] | 0;
   24935           6 :  i7 = i10 + 8 | 0;
   24936           6 :  i5 = HEAP32[i7 >> 2] | 0;
   24937           6 :  do {
   24938           6 :   if ((i11 + 1 | 0) >>> 0 > i5 >>> 0) {
   24939           6 :    if (i5 >>> 0 > 2147483645) {
   24940           6 :     _lexerror(i3, 12368, 0);
   24941           6 :    }
   24942           6 :    i12 = i5 << 1;
   24943           6 :    i11 = HEAP32[i3 + 52 >> 2] | 0;
   24944           6 :    if ((i12 | 0) == -2) {
   24945           6 :     _luaM_toobig(i11);
   24946           6 :    } else {
   24947           6 :     i9 = _luaM_realloc_(i11, HEAP32[i10 >> 2] | 0, i5, i12) | 0;
   24948           6 :     HEAP32[i10 >> 2] = i9;
   24949           6 :     HEAP32[i7 >> 2] = i12;
   24950           6 :     i6 = HEAP32[i8 >> 2] | 0;
   24951           6 :     break;
   24952           6 :    }
   24953           6 :   } else {
   24954           6 :    i6 = i11;
   24955           6 :    i9 = HEAP32[i10 >> 2] | 0;
   24956           6 :   }
   24957           6 :  } while (0);
   24958           6 :  HEAP32[i8 >> 2] = i6 + 1;
   24959           6 :  HEAP8[i9 + i6 | 0] = i2;
   24960           6 :  i5 = i3 + 56 | 0;
   24961           6 :  i6 = HEAP32[i5 >> 2] | 0;
   24962           6 :  i13 = HEAP32[i6 >> 2] | 0;
   24963           6 :  HEAP32[i6 >> 2] = i13 + -1;
   24964           6 :  if ((i13 | 0) == 0) {
   24965           6 :   i6 = _luaZ_fill(i6) | 0;
   24966           6 :  } else {
   24967           6 :   i13 = i6 + 4 | 0;
   24968           6 :   i6 = HEAP32[i13 >> 2] | 0;
   24969           6 :   HEAP32[i13 >> 2] = i6 + 1;
   24970           6 :   i6 = HEAPU8[i6] | 0;
   24971           6 :  }
   24972           6 :  HEAP32[i3 >> 2] = i6;
   24973           6 :  if ((i6 | 0) != 61) {
   24974           6 :   i12 = i6;
   24975           6 :   i13 = 0;
   24976           6 :   i12 = (i12 | 0) != (i2 | 0);
   24977           6 :   i12 = i12 << 31 >> 31;
   24978           6 :   i13 = i12 ^ i13;
   24979           6 :   STACKTOP = i1;
   24980           6 :   return i13 | 0;
   24981           6 :  }
   24982           6 :  i6 = i3 + 52 | 0;
   24983           6 :  i7 = 0;
   24984           6 :  while (1) {
   24985           6 :   i9 = HEAP32[i4 >> 2] | 0;
   24986           6 :   i8 = i9 + 4 | 0;
   24987           6 :   i10 = HEAP32[i8 >> 2] | 0;
   24988           6 :   i11 = i9 + 8 | 0;
   24989           6 :   i12 = HEAP32[i11 >> 2] | 0;
   24990           6 :   if ((i10 + 1 | 0) >>> 0 > i12 >>> 0) {
   24991           6 :    if (i12 >>> 0 > 2147483645) {
   24992           6 :     i4 = 16;
   24993           6 :     break;
   24994           6 :    }
   24995           6 :    i13 = i12 << 1;
   24996           6 :    i10 = HEAP32[i6 >> 2] | 0;
   24997           6 :    if ((i13 | 0) == -2) {
   24998           6 :     i4 = 18;
   24999           6 :     break;
   25000           6 :    }
   25001           6 :    i12 = _luaM_realloc_(i10, HEAP32[i9 >> 2] | 0, i12, i13) | 0;
   25002           6 :    HEAP32[i9 >> 2] = i12;
   25003           6 :    HEAP32[i11 >> 2] = i13;
   25004           6 :    i10 = HEAP32[i8 >> 2] | 0;
   25005           6 :    i9 = i12;
   25006           6 :   } else {
   25007           6 :    i9 = HEAP32[i9 >> 2] | 0;
   25008           6 :   }
   25009           6 :   HEAP32[i8 >> 2] = i10 + 1;
   25010           6 :   HEAP8[i9 + i10 | 0] = 61;
   25011           6 :   i8 = HEAP32[i5 >> 2] | 0;
   25012           6 :   i13 = HEAP32[i8 >> 2] | 0;
   25013           6 :   HEAP32[i8 >> 2] = i13 + -1;
   25014           6 :   if ((i13 | 0) == 0) {
   25015           6 :    i8 = _luaZ_fill(i8) | 0;
   25016           6 :   } else {
   25017           6 :    i13 = i8 + 4 | 0;
   25018           6 :    i8 = HEAP32[i13 >> 2] | 0;
   25019           6 :    HEAP32[i13 >> 2] = i8 + 1;
   25020           6 :    i8 = HEAPU8[i8] | 0;
   25021           6 :   }
   25022           6 :   HEAP32[i3 >> 2] = i8;
   25023           6 :   i7 = i7 + 1 | 0;
   25024           6 :   if ((i8 | 0) != 61) {
   25025           6 :    i4 = 24;
   25026           6 :    break;
   25027           6 :   }
   25028           6 :  }
   25029           6 :  if ((i4 | 0) == 16) {
   25030           6 :   _lexerror(i3, 12368, 0);
   25031           6 :  } else if ((i4 | 0) == 18) {
   25032           6 :   _luaM_toobig(i10);
   25033           6 :  } else if ((i4 | 0) == 24) {
   25034           6 :   i13 = (i8 | 0) != (i2 | 0);
   25035           6 :   i13 = i13 << 31 >> 31;
   25036           6 :   i13 = i13 ^ i7;
   25037           6 :   STACKTOP = i1;
   25038           6 :   return i13 | 0;
   25039           6 :  }
   25040           6 :  return 0;
   25041           6 : }
   25042           1 : function _luaV_arith(i8, i2, i3, i5, i4) {
   25043           0 :  i8 = i8 | 0;
   25044           0 :  i2 = i2 | 0;
   25045           0 :  i3 = i3 | 0;
   25046           0 :  i5 = i5 | 0;
   25047           0 :  i4 = i4 | 0;
   25048           0 :  var i1 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0;
   25049           0 :  i1 = STACKTOP;
   25050           0 :  STACKTOP = STACKTOP + 32 | 0;
   25051           0 :  i9 = i1 + 24 | 0;
   25052           0 :  i13 = i1 + 16 | 0;
   25053           0 :  i12 = i1;
   25054           0 :  i6 = i3 + 8 | 0;
   25055           0 :  i11 = HEAP32[i6 >> 2] | 0;
   25056           0 :  if ((i11 | 0) != 3) {
   25057           0 :   if ((i11 & 15 | 0) == 4 ? (i11 = HEAP32[i3 >> 2] | 0, (_luaO_str2d(i11 + 16 | 0, HEAP32[i11 + 12 >> 2] | 0, i13) | 0) != 0) : 0) {
   25058           0 :    HEAPF64[i12 >> 3] = +HEAPF64[i13 >> 3];
   25059           0 :    HEAP32[i12 + 8 >> 2] = 3;
   25060           0 :    i10 = 5;
   25061           0 :   }
   25062           0 :  } else {
   25063           0 :   i12 = i3;
   25064           0 :   i10 = 5;
   25065           0 :  }
   25066           0 :  do {
   25067           0 :   if ((i10 | 0) == 5) {
   25068           0 :    i10 = HEAP32[i5 + 8 >> 2] | 0;
   25069           0 :    if ((i10 | 0) == 3) {
   25070           0 :     if ((i5 | 0) == 0) {
   25071           0 :      break;
   25072           0 :     }
   25073           0 :     d14 = +HEAPF64[i5 >> 3];
   25074           0 :    } else {
   25075           0 :     if ((i10 & 15 | 0) != 4) {
   25076           0 :      break;
   25077           0 :     }
   25078           0 :     i13 = HEAP32[i5 >> 2] | 0;
   25079           0 :     if ((_luaO_str2d(i13 + 16 | 0, HEAP32[i13 + 12 >> 2] | 0, i9) | 0) == 0) {
   25080           0 :      break;
   25081           0 :     }
   25082           0 :     d14 = +HEAPF64[i9 >> 3];
   25083           0 :    }
   25084           0 :    HEAPF64[i2 >> 3] = +_luaO_arith(i4 + -6 | 0, +HEAPF64[i12 >> 3], d14);
   25085           0 :    HEAP32[i2 + 8 >> 2] = 3;
   25086           0 :    STACKTOP = i1;
   25087           0 :    return;
   25088           0 :   }
   25089           0 :  } while (0);
   25090           0 :  i9 = _luaT_gettmbyobj(i8, i3, i4) | 0;
   25091           0 :  if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
   25092           0 :   i4 = _luaT_gettmbyobj(i8, i5, i4) | 0;
   25093           0 :   if ((HEAP32[i4 + 8 >> 2] | 0) == 0) {
   25094           0 :    _luaG_aritherror(i8, i3, i5);
   25095           0 :   } else {
   25096           0 :    i7 = i4;
   25097           0 :   }
   25098           0 :  } else {
   25099           0 :   i7 = i9;
   25100           0 :  }
   25101           0 :  i12 = i8 + 28 | 0;
   25102           0 :  i13 = i2 - (HEAP32[i12 >> 2] | 0) | 0;
   25103           0 :  i9 = i8 + 8 | 0;
   25104           0 :  i11 = HEAP32[i9 >> 2] | 0;
   25105           0 :  HEAP32[i9 >> 2] = i11 + 16;
   25106           0 :  i2 = i7;
   25107           0 :  i10 = HEAP32[i2 + 4 >> 2] | 0;
   25108           0 :  i4 = i11;
   25109           0 :  HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
   25110           0 :  HEAP32[i4 + 4 >> 2] = i10;
   25111           0 :  HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
   25112           0 :  i11 = HEAP32[i9 >> 2] | 0;
   25113           0 :  HEAP32[i9 >> 2] = i11 + 16;
   25114           0 :  i4 = i3;
   25115           0 :  i10 = HEAP32[i4 + 4 >> 2] | 0;
   25116           0 :  i7 = i11;
   25117           0 :  HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
   25118           0 :  HEAP32[i7 + 4 >> 2] = i10;
   25119           0 :  HEAP32[i11 + 8 >> 2] = HEAP32[i6 >> 2];
   25120           0 :  i11 = HEAP32[i9 >> 2] | 0;
   25121           0 :  HEAP32[i9 >> 2] = i11 + 16;
   25122           0 :  i6 = i5;
   25123           0 :  i7 = HEAP32[i6 + 4 >> 2] | 0;
   25124           0 :  i10 = i11;
   25125           0 :  HEAP32[i10 >> 2] = HEAP32[i6 >> 2];
   25126           0 :  HEAP32[i10 + 4 >> 2] = i7;
   25127           0 :  HEAP32[i11 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
   25128           0 :  _luaD_call(i8, (HEAP32[i9 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i8 + 16 >> 2] | 0) + 18 | 0] & 1);
   25129           0 :  i12 = HEAP32[i12 >> 2] | 0;
   25130           0 :  i11 = HEAP32[i9 >> 2] | 0;
   25131           0 :  i8 = i11 + -16 | 0;
   25132           0 :  HEAP32[i9 >> 2] = i8;
   25133           0 :  i9 = HEAP32[i8 + 4 >> 2] | 0;
   25134           0 :  i10 = i12 + i13 | 0;
   25135           0 :  HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
   25136           0 :  HEAP32[i10 + 4 >> 2] = i9;
   25137           0 :  HEAP32[i12 + (i13 + 8) >> 2] = HEAP32[i11 + -8 >> 2];
   25138           0 :  STACKTOP = i1;
   25139           0 :  return;
   25140           1 : }
   25141          24 : function _new_localvar(i1, i8) {
   25142          24 :  i1 = i1 | 0;
   25143          24 :  i8 = i8 | 0;
   25144          24 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
   25145          24 :  i3 = STACKTOP;
   25146          24 :  STACKTOP = STACKTOP + 16 | 0;
   25147          24 :  i4 = i3;
   25148          24 :  i5 = HEAP32[i1 + 48 >> 2] | 0;
   25149          24 :  i2 = HEAP32[i1 + 64 >> 2] | 0;
   25150          24 :  i7 = HEAP32[i5 >> 2] | 0;
   25151          24 :  i10 = i7 + 60 | 0;
   25152          24 :  i11 = HEAP32[i10 >> 2] | 0;
   25153          24 :  i6 = i5 + 44 | 0;
   25154          24 :  if ((HEAP16[i6 >> 1] | 0) < (i11 | 0)) {
   25155          24 :   i9 = i7 + 24 | 0;
   25156          24 :   i10 = i11;
   25157          24 :  } else {
   25158          24 :   i9 = i7 + 24 | 0;
   25159          24 :   HEAP32[i9 >> 2] = _luaM_growaux_(HEAP32[i1 + 52 >> 2] | 0, HEAP32[i9 >> 2] | 0, i10, 12, 32767, 6496) | 0;
   25160          24 :   i10 = HEAP32[i10 >> 2] | 0;
   25161          24 :  }
   25162          24 :  if ((i11 | 0) < (i10 | 0)) {
   25163          24 :   i12 = i11;
   25164          24 :   while (1) {
   25165          24 :    i11 = i12 + 1 | 0;
   25166          24 :    HEAP32[(HEAP32[i9 >> 2] | 0) + (i12 * 12 | 0) >> 2] = 0;
   25167          24 :    if ((i11 | 0) == (i10 | 0)) {
   25168          24 :     break;
   25169          24 :    } else {
   25170          24 :     i12 = i11;
   25171          24 :    }
   25172          24 :   }
   25173          24 :  }
   25174          24 :  i10 = HEAP16[i6 >> 1] | 0;
   25175          24 :  HEAP32[(HEAP32[i9 >> 2] | 0) + ((i10 << 16 >> 16) * 12 | 0) >> 2] = i8;
   25176          24 :  if (!((HEAP8[i8 + 5 | 0] & 3) == 0) ? !((HEAP8[i7 + 5 | 0] & 4) == 0) : 0) {
   25177          24 :   _luaC_barrier_(HEAP32[i1 + 52 >> 2] | 0, i7, i8);
   25178          24 :   i7 = HEAP16[i6 >> 1] | 0;
   25179          24 :  } else {
   25180          24 :   i7 = i10;
   25181          24 :  }
   25182          24 :  HEAP16[i6 >> 1] = i7 + 1 << 16 >> 16;
   25183          24 :  i6 = i2 + 4 | 0;
   25184          24 :  i8 = HEAP32[i6 >> 2] | 0;
   25185          24 :  if ((i8 + 1 - (HEAP32[i5 + 40 >> 2] | 0) | 0) > 200) {
   25186          24 :   i10 = i5 + 12 | 0;
   25187          24 :   i9 = HEAP32[(HEAP32[i10 >> 2] | 0) + 52 >> 2] | 0;
   25188          24 :   i5 = HEAP32[(HEAP32[i5 >> 2] | 0) + 64 >> 2] | 0;
   25189          24 :   if ((i5 | 0) == 0) {
   25190          24 :    i11 = 6552;
   25191          24 :    HEAP32[i4 >> 2] = 6496;
   25192          24 :    i12 = i4 + 4 | 0;
   25193          24 :    HEAP32[i12 >> 2] = 200;
   25194          24 :    i12 = i4 + 8 | 0;
   25195          24 :    HEAP32[i12 >> 2] = i11;
   25196          24 :    i12 = _luaO_pushfstring(i9, 6592, i4) | 0;
   25197          24 :    i11 = HEAP32[i10 >> 2] | 0;
   25198          24 :    _luaX_syntaxerror(i11, i12);
   25199          24 :   }
   25200          24 :   HEAP32[i4 >> 2] = i5;
   25201          24 :   i11 = _luaO_pushfstring(i9, 6568, i4) | 0;
   25202          24 :   HEAP32[i4 >> 2] = 6496;
   25203          24 :   i12 = i4 + 4 | 0;
   25204          24 :   HEAP32[i12 >> 2] = 200;
   25205          24 :   i12 = i4 + 8 | 0;
   25206          24 :   HEAP32[i12 >> 2] = i11;
   25207          24 :   i12 = _luaO_pushfstring(i9, 6592, i4) | 0;
   25208          24 :   i11 = HEAP32[i10 >> 2] | 0;
   25209          24 :   _luaX_syntaxerror(i11, i12);
   25210          24 :  }
   25211          24 :  i4 = i2 + 8 | 0;
   25212          24 :  if ((i8 + 2 | 0) > (HEAP32[i4 >> 2] | 0)) {
   25213          24 :   i11 = _luaM_growaux_(HEAP32[i1 + 52 >> 2] | 0, HEAP32[i2 >> 2] | 0, i4, 2, 2147483645, 6496) | 0;
   25214          24 :   HEAP32[i2 >> 2] = i11;
   25215          24 :   i12 = HEAP32[i6 >> 2] | 0;
   25216          24 :   i10 = i12 + 1 | 0;
   25217          24 :   HEAP32[i6 >> 2] = i10;
   25218          24 :   i12 = i11 + (i12 << 1) | 0;
   25219          24 :   HEAP16[i12 >> 1] = i7;
   25220          24 :   STACKTOP = i3;
   25221          24 :   return;
   25222          24 :  } else {
   25223          24 :   i12 = i8;
   25224          24 :   i11 = HEAP32[i2 >> 2] | 0;
   25225          24 :   i10 = i12 + 1 | 0;
   25226          24 :   HEAP32[i6 >> 2] = i10;
   25227          24 :   i12 = i11 + (i12 << 1) | 0;
   25228          24 :   HEAP16[i12 >> 1] = i7;
   25229          24 :   STACKTOP = i3;
   25230          24 :   return;
   25231          24 :  }
   25232          24 : }
   25233           1 : function _luaC_fullgc(i1, i5) {
   25234           0 :  i1 = i1 | 0;
   25235           0 :  i5 = i5 | 0;
   25236           0 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
   25237           0 :  i2 = STACKTOP;
   25238           0 :  i4 = i1 + 12 | 0;
   25239           0 :  i3 = HEAP32[i4 >> 2] | 0;
   25240           0 :  i6 = i3 + 62 | 0;
   25241           0 :  i8 = HEAP8[i6] | 0;
   25242           0 :  i5 = (i5 | 0) != 0;
   25243           0 :  if (!i5) {
   25244           0 :   HEAP8[i6] = 0;
   25245           0 :   i9 = (HEAP32[i4 >> 2] | 0) + 104 | 0;
   25246           0 :   i10 = HEAP32[i9 >> 2] | 0;
   25247           0 :   if ((i10 | 0) != 0) {
   25248           0 :    do {
   25249           0 :     i11 = i10 + 5 | 0;
   25250           0 :     HEAP8[i11] = HEAP8[i11] & 191;
   25251           0 :     _GCTM(i1, 1);
   25252           0 :     i10 = HEAP32[i9 >> 2] | 0;
   25253           0 :    } while ((i10 | 0) != 0);
   25254           0 :    if ((HEAP8[i6] | 0) == 2) {
   25255           0 :     i9 = 7;
   25256           0 :    } else {
   25257           0 :     i9 = 6;
   25258           0 :    }
   25259           0 :   } else {
   25260           0 :    i9 = 6;
   25261           0 :   }
   25262           0 :  } else {
   25263           0 :   HEAP8[i6] = 1;
   25264           0 :   i9 = 6;
   25265           0 :  }
   25266           0 :  if ((i9 | 0) == 6 ? (HEAPU8[i3 + 61 | 0] | 0) < 2 : 0) {
   25267           0 :   i9 = 7;
   25268           0 :  }
   25269           0 :  if ((i9 | 0) == 7) {
   25270           0 :   i9 = HEAP32[i4 >> 2] | 0;
   25271           0 :   HEAP8[i9 + 61 | 0] = 2;
   25272           0 :   HEAP32[i9 + 64 >> 2] = 0;
   25273           0 :   i10 = i9 + 72 | 0;
   25274           0 :   do {
   25275           0 :    i11 = _sweeplist(i1, i10, 1) | 0;
   25276           0 :   } while ((i11 | 0) == (i10 | 0));
   25277           0 :   HEAP32[i9 + 80 >> 2] = i11;
   25278           0 :   i11 = i9 + 68 | 0;
   25279           0 :   do {
   25280           0 :    i10 = _sweeplist(i1, i11, 1) | 0;
   25281           0 :   } while ((i10 | 0) == (i11 | 0));
   25282           0 :   HEAP32[i9 + 76 >> 2] = i10;
   25283           0 :  }
   25284           0 :  i11 = HEAP32[i4 >> 2] | 0;
   25285           0 :  i9 = i11 + 61 | 0;
   25286           0 :  if ((HEAP8[i9] | 0) == 5) {
   25287           0 :   i9 = 5;
   25288           0 :  } else {
   25289           0 :   do {
   25290           0 :    _singlestep(i1) | 0;
   25291           0 :   } while ((HEAP8[i9] | 0) != 5);
   25292           0 :   i9 = HEAP32[i4 >> 2] | 0;
   25293           0 :   i11 = i9;
   25294           0 :   i9 = HEAP8[i9 + 61 | 0] | 0;
   25295           0 :  }
   25296           0 :  i10 = i11 + 61 | 0;
   25297           0 :  if ((1 << (i9 & 255) & -33 | 0) == 0) {
   25298           0 :   do {
   25299           0 :    _singlestep(i1) | 0;
   25300           0 :   } while ((1 << HEAPU8[i10] & -33 | 0) == 0);
   25301           0 :   i9 = HEAP32[i4 >> 2] | 0;
   25302           0 :   i11 = i9;
   25303           0 :   i9 = HEAP8[i9 + 61 | 0] | 0;
   25304           0 :  }
   25305           0 :  i10 = i11 + 61 | 0;
   25306           0 :  if (!(i9 << 24 >> 24 == 5)) {
   25307           0 :   do {
   25308           0 :    _singlestep(i1) | 0;
   25309           0 :   } while ((HEAP8[i10] | 0) != 5);
   25310           0 :  }
   25311           0 :  if (i8 << 24 >> 24 == 2 ? (i7 = (HEAP32[i4 >> 2] | 0) + 61 | 0, (HEAP8[i7] | 0) != 0) : 0) {
   25312           0 :   do {
   25313           0 :    _singlestep(i1) | 0;
   25314           0 :   } while ((HEAP8[i7] | 0) != 0);
   25315           0 :  }
   25316           0 :  HEAP8[i6] = i8;
   25317           0 :  i6 = HEAP32[i3 + 8 >> 2] | 0;
   25318           0 :  i7 = HEAP32[i3 + 12 >> 2] | 0;
   25319           0 :  i8 = (i7 + i6 | 0) / 100 | 0;
   25320           0 :  i9 = HEAP32[i3 + 156 >> 2] | 0;
   25321           0 :  if ((i9 | 0) < (2147483644 / (i8 | 0) | 0 | 0)) {
   25322           0 :   i8 = Math_imul(i9, i8) | 0;
   25323           0 :  } else {
   25324           0 :   i8 = 2147483644;
   25325           0 :  }
   25326           0 :  _luaE_setdebt(i3, i6 - i8 + i7 | 0);
   25327           0 :  if (i5) {
   25328           0 :   STACKTOP = i2;
   25329           0 :   return;
   25330           0 :  }
   25331           0 :  i3 = (HEAP32[i4 >> 2] | 0) + 104 | 0;
   25332           0 :  i4 = HEAP32[i3 >> 2] | 0;
   25333           0 :  if ((i4 | 0) == 0) {
   25334           0 :   STACKTOP = i2;
   25335           0 :   return;
   25336           0 :  }
   25337           0 :  do {
   25338           0 :   i11 = i4 + 5 | 0;
   25339           0 :   HEAP8[i11] = HEAP8[i11] & 191;
   25340           0 :   _GCTM(i1, 1);
   25341           0 :   i4 = HEAP32[i3 >> 2] | 0;
   25342           0 :  } while ((i4 | 0) != 0);
   25343           0 :  STACKTOP = i2;
   25344           0 :  return;
   25345           1 : }
   25346           1 : function _scanexp(i3, i6) {
   25347           0 :  i3 = i3 | 0;
   25348           0 :  i6 = i6 | 0;
   25349           0 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
   25350           0 :  i1 = STACKTOP;
   25351           0 :  i2 = i3 + 4 | 0;
   25352           0 :  i5 = HEAP32[i2 >> 2] | 0;
   25353           0 :  i4 = i3 + 100 | 0;
   25354           0 :  if (i5 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
   25355           0 :   HEAP32[i2 >> 2] = i5 + 1;
   25356           0 :   i8 = HEAPU8[i5] | 0;
   25357           0 :  } else {
   25358           0 :   i8 = ___shgetc(i3) | 0;
   25359           0 :  }
   25360           0 :  if ((i8 | 0) == 43 | (i8 | 0) == 45) {
   25361           0 :   i5 = (i8 | 0) == 45 | 0;
   25362           0 :   i7 = HEAP32[i2 >> 2] | 0;
   25363           0 :   if (i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
   25364           0 :    HEAP32[i2 >> 2] = i7 + 1;
   25365           0 :    i8 = HEAPU8[i7] | 0;
   25366           0 :   } else {
   25367           0 :    i8 = ___shgetc(i3) | 0;
   25368           0 :   }
   25369           0 :   if (!((i8 + -48 | 0) >>> 0 < 10 | (i6 | 0) == 0) ? (HEAP32[i4 >> 2] | 0) != 0 : 0) {
   25370           0 :    HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1;
   25371           0 :   }
   25372           0 :  } else {
   25373           0 :   i5 = 0;
   25374           0 :  }
   25375           0 :  if ((i8 + -48 | 0) >>> 0 > 9) {
   25376           0 :   if ((HEAP32[i4 >> 2] | 0) == 0) {
   25377           0 :    i7 = -2147483648;
   25378           0 :    i8 = 0;
   25379           0 :    tempRet0 = i7;
   25380           0 :    STACKTOP = i1;
   25381           0 :    return i8 | 0;
   25382           0 :   }
   25383           0 :   HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1;
   25384           0 :   i7 = -2147483648;
   25385           0 :   i8 = 0;
   25386           0 :   tempRet0 = i7;
   25387           0 :   STACKTOP = i1;
   25388           0 :   return i8 | 0;
   25389           0 :  } else {
   25390           0 :   i6 = 0;
   25391           0 :  }
   25392           0 :  while (1) {
   25393           0 :   i6 = i8 + -48 + i6 | 0;
   25394           0 :   i7 = HEAP32[i2 >> 2] | 0;
   25395           0 :   if (i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
   25396           0 :    HEAP32[i2 >> 2] = i7 + 1;
   25397           0 :    i8 = HEAPU8[i7] | 0;
   25398           0 :   } else {
   25399           0 :    i8 = ___shgetc(i3) | 0;
   25400           0 :   }
   25401           0 :   if (!((i8 + -48 | 0) >>> 0 < 10 & (i6 | 0) < 214748364)) {
   25402           0 :    break;
   25403           0 :   }
   25404           0 :   i6 = i6 * 10 | 0;
   25405           0 :  }
   25406           0 :  i7 = ((i6 | 0) < 0) << 31 >> 31;
   25407           0 :  if ((i8 + -48 | 0) >>> 0 < 10) {
   25408           0 :   do {
   25409           0 :    i7 = ___muldi3(i6 | 0, i7 | 0, 10, 0) | 0;
   25410           0 :    i6 = tempRet0;
   25411           0 :    i8 = _i64Add(i8 | 0, ((i8 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0;
   25412           0 :    i6 = _i64Add(i8 | 0, tempRet0 | 0, i7 | 0, i6 | 0) | 0;
   25413           0 :    i7 = tempRet0;
   25414           0 :    i8 = HEAP32[i2 >> 2] | 0;
   25415           0 :    if (i8 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
   25416           0 :     HEAP32[i2 >> 2] = i8 + 1;
   25417           0 :     i8 = HEAPU8[i8] | 0;
   25418           0 :    } else {
   25419           0 :     i8 = ___shgetc(i3) | 0;
   25420           0 :    }
   25421           0 :   } while ((i8 + -48 | 0) >>> 0 < 10 & ((i7 | 0) < 21474836 | (i7 | 0) == 21474836 & i6 >>> 0 < 2061584302));
   25422           0 :  }
   25423           0 :  if ((i8 + -48 | 0) >>> 0 < 10) {
   25424           0 :   do {
   25425           0 :    i8 = HEAP32[i2 >> 2] | 0;
   25426           0 :    if (i8 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
   25427           0 :     HEAP32[i2 >> 2] = i8 + 1;
   25428           0 :     i8 = HEAPU8[i8] | 0;
   25429           0 :    } else {
   25430           0 :     i8 = ___shgetc(i3) | 0;
   25431           0 :    }
   25432           0 :   } while ((i8 + -48 | 0) >>> 0 < 10);
   25433           0 :  }
   25434           0 :  if ((HEAP32[i4 >> 2] | 0) != 0) {
   25435           0 :   HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1;
   25436           0 :  }
   25437           0 :  i3 = (i5 | 0) != 0;
   25438           0 :  i2 = _i64Subtract(0, 0, i6 | 0, i7 | 0) | 0;
   25439           0 :  i4 = i3 ? tempRet0 : i7;
   25440           0 :  i8 = i3 ? i2 : i6;
   25441           0 :  tempRet0 = i4;
   25442           0 :  STACKTOP = i1;
   25443           0 :  return i8 | 0;
   25444           1 : }
   25445        8158 : function _sweeplist(i3, i8, i9) {
   25446        8158 :  i3 = i3 | 0;
   25447        8158 :  i8 = i8 | 0;
   25448        8158 :  i9 = i9 | 0;
   25449        8158 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i10 = 0, i11 = 0, i12 = 0;
   25450        8158 :  i1 = STACKTOP;
   25451        8158 :  i5 = i3 + 12 | 0;
   25452        8158 :  i7 = HEAP32[i5 >> 2] | 0;
   25453        8158 :  i6 = HEAPU8[i7 + 60 | 0] | 0;
   25454        8158 :  i2 = i6 ^ 3;
   25455        8158 :  i7 = (HEAP8[i7 + 62 | 0] | 0) == 2;
   25456        8158 :  i4 = i7 ? 255 : 184;
   25457        8158 :  i6 = i7 ? 64 : i6 & 3;
   25458        8158 :  i7 = i7 ? 64 : 0;
   25459        8158 :  i10 = HEAP32[i8 >> 2] | 0;
   25460        8158 :  L1 : do {
   25461        8158 :   if ((i10 | 0) == 0) {
   25462        8158 :    i10 = 0;
   25463        8158 :   } else {
   25464        8158 :    i11 = i9;
   25465        8158 :    L2 : while (1) {
   25466        8158 :     i9 = i11 + -1 | 0;
   25467        8158 :     if ((i11 | 0) == 0) {
   25468        8158 :      break L1;
   25469        8158 :     }
   25470        8158 :     i11 = i10 + 5 | 0;
   25471        8158 :     i12 = HEAPU8[i11] | 0;
   25472        8158 :     L5 : do {
   25473        8158 :      if (((i12 ^ 3) & i2 | 0) == 0) {
   25474        8158 :       HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
   25475        8158 :       switch (HEAPU8[i10 + 4 | 0] | 0) {
   25476        8158 :       case 4:
   25477        8158 :        {
   25478        8158 :         i12 = (HEAP32[i5 >> 2] | 0) + 28 | 0;
   25479        8158 :         HEAP32[i12 >> 2] = (HEAP32[i12 >> 2] | 0) + -1;
   25480        8158 :         break;
   25481        8158 :        }
   25482        8158 :       case 38:
   25483        8158 :        {
   25484        8158 :         _luaM_realloc_(i3, i10, (HEAPU8[i10 + 6 | 0] << 4) + 16 | 0, 0) | 0;
   25485        8158 :         break L5;
   25486        8158 :        }
   25487        8158 :       case 6:
   25488        8158 :        {
   25489        8158 :         _luaM_realloc_(i3, i10, (HEAPU8[i10 + 6 | 0] << 2) + 16 | 0, 0) | 0;
   25490        8158 :         break L5;
   25491        8158 :        }
   25492        8158 :       case 20:
   25493        8158 :        {
   25494        8158 :         break;
   25495        8158 :        }
   25496        8158 :       case 5:
   25497        8158 :        {
   25498        8158 :         _luaH_free(i3, i10);
   25499        8158 :         break L5;
   25500        8158 :        }
   25501        8158 :       case 10:
   25502        8158 :        {
   25503        8158 :         _luaF_freeupval(i3, i10);
   25504        8158 :         break L5;
   25505        8158 :        }
   25506        8158 :       case 8:
   25507        8158 :        {
   25508        8158 :         _luaE_freethread(i3, i10);
   25509        8158 :         break L5;
   25510        8158 :        }
   25511        8158 :       case 9:
   25512        8158 :        {
   25513        8158 :         _luaF_freeproto(i3, i10);
   25514        8158 :         break L5;
   25515        8158 :        }
   25516        8158 :       case 7:
   25517        8158 :        {
   25518        8158 :         _luaM_realloc_(i3, i10, (HEAP32[i10 + 16 >> 2] | 0) + 24 | 0, 0) | 0;
   25519        8158 :         break L5;
   25520        8158 :        }
   25521        8158 :       default:
   25522        8158 :        {
   25523        8158 :         break L5;
   25524        8158 :        }
   25525        8158 :       }
   25526        8158 :       _luaM_realloc_(i3, i10, (HEAP32[i10 + 12 >> 2] | 0) + 17 | 0, 0) | 0;
   25527        8158 :      } else {
   25528        8158 :       if ((i12 & i7 | 0) != 0) {
   25529        8158 :        i2 = 0;
   25530        8158 :        break L2;
   25531        8158 :       }
   25532        8158 :       if (((HEAP8[i10 + 4 | 0] | 0) == 8 ? (HEAP32[i10 + 28 >> 2] | 0) != 0 : 0) ? (_sweeplist(i3, i10 + 56 | 0, -3) | 0, _luaE_freeCI(i10), (HEAP8[(HEAP32[i5 >> 2] | 0) + 62 | 0] | 0) != 1) : 0) {
   25533        8158 :        _luaD_shrinkstack(i10);
   25534        8158 :       }
   25535        8158 :       HEAP8[i11] = i12 & i4 | i6;
   25536        8158 :       i8 = i10;
   25537        8158 :      }
   25538        8158 :     } while (0);
   25539        8158 :     i10 = HEAP32[i8 >> 2] | 0;
   25540        8158 :     if ((i10 | 0) == 0) {
   25541        8158 :      i10 = 0;
   25542        8158 :      break L1;
   25543        8158 :     } else {
   25544        8158 :      i11 = i9;
   25545        8158 :     }
   25546        8158 :    }
   25547        8158 :    STACKTOP = i1;
   25548        8158 :    return i2 | 0;
   25549        8158 :   }
   25550        8158 :  } while (0);
   25551        8158 :  i12 = (i10 | 0) == 0 ? 0 : i8;
   25552        8158 :  STACKTOP = i1;
   25553        8158 :  return i12 | 0;
   25554        8158 : }
   25555           1 : function _resume(i1, i6) {
   25556           0 :  i1 = i1 | 0;
   25557           0 :  i6 = i6 | 0;
   25558           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   25559           0 :  i2 = STACKTOP;
   25560           0 :  i3 = i1 + 16 | 0;
   25561           0 :  i5 = HEAP32[i3 >> 2] | 0;
   25562           0 :  if ((HEAPU16[i1 + 38 >> 1] | 0) > 199) {
   25563           0 :   _resume_error(i1, 2240, i6);
   25564           0 :  }
   25565           0 :  i4 = i1 + 6 | 0;
   25566           0 :  i7 = HEAP8[i4] | 0;
   25567           0 :  if (i7 << 24 >> 24 == 0) {
   25568           0 :   if ((i5 | 0) != (i1 + 72 | 0)) {
   25569           0 :    _resume_error(i1, 2448, i6);
   25570           0 :   }
   25571           0 :   if ((_luaD_precall(i1, i6 + -16 | 0, -1) | 0) != 0) {
   25572           0 :    STACKTOP = i2;
   25573           0 :    return;
   25574           0 :   }
   25575           0 :   _luaV_execute(i1);
   25576           0 :   STACKTOP = i2;
   25577           0 :   return;
   25578           0 :  } else if (i7 << 24 >> 24 == 1) {
   25579           0 :   HEAP8[i4] = 0;
   25580           0 :   i4 = i1 + 28 | 0;
   25581           0 :   HEAP32[i5 >> 2] = (HEAP32[i4 >> 2] | 0) + (HEAP32[i5 + 20 >> 2] | 0);
   25582           0 :   i8 = i5 + 18 | 0;
   25583           0 :   i7 = HEAP8[i8] | 0;
   25584           0 :   if ((i7 & 1) == 0) {
   25585           0 :    i9 = HEAP32[i5 + 28 >> 2] | 0;
   25586           0 :    if ((i9 | 0) != 0) {
   25587           0 :     HEAP8[i5 + 37 | 0] = 1;
   25588           0 :     HEAP8[i8] = i7 & 255 | 8;
   25589           0 :     i6 = FUNCTION_TABLE_ii[i9 & 255](i1) | 0;
   25590           0 :     i6 = (HEAP32[i1 + 8 >> 2] | 0) + (0 - i6 << 4) | 0;
   25591           0 :    }
   25592           0 :    i5 = HEAP32[i3 >> 2] | 0;
   25593           0 :    i7 = HEAPU8[i1 + 40 | 0] | 0;
   25594           0 :    if ((i7 & 6 | 0) == 0) {
   25595           0 :     i7 = i5 + 8 | 0;
   25596           0 :    } else {
   25597           0 :     if ((i7 & 2 | 0) != 0) {
   25598           0 :      i6 = i6 - (HEAP32[i4 >> 2] | 0) | 0;
   25599           0 :      _luaD_hook(i1, 1, -1);
   25600           0 :      i6 = (HEAP32[i4 >> 2] | 0) + i6 | 0;
   25601           0 :     }
   25602           0 :     i7 = i5 + 8 | 0;
   25603           0 :     HEAP32[i1 + 20 >> 2] = HEAP32[(HEAP32[i7 >> 2] | 0) + 28 >> 2];
   25604           0 :    }
   25605           0 :    i4 = HEAP32[i5 >> 2] | 0;
   25606           0 :    i5 = HEAP16[i5 + 16 >> 1] | 0;
   25607           0 :    HEAP32[i3 >> 2] = HEAP32[i7 >> 2];
   25608           0 :    i3 = i1 + 8 | 0;
   25609           0 :    L27 : do {
   25610           0 :     if (!(i5 << 16 >> 16 == 0)) {
   25611           0 :      i5 = i5 << 16 >> 16;
   25612           0 :      while (1) {
   25613           0 :       if (!(i6 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0)) {
   25614           0 :        break;
   25615           0 :       }
   25616           0 :       i7 = i4 + 16 | 0;
   25617           0 :       i10 = i6;
   25618           0 :       i8 = HEAP32[i10 + 4 >> 2] | 0;
   25619           0 :       i9 = i4;
   25620           0 :       HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
   25621           0 :       HEAP32[i9 + 4 >> 2] = i8;
   25622           0 :       HEAP32[i4 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
   25623           0 :       i5 = i5 + -1 | 0;
   25624           0 :       if ((i5 | 0) == 0) {
   25625           0 :        i4 = i7;
   25626           0 :        break L27;
   25627           0 :       }
   25628           0 :       i6 = i6 + 16 | 0;
   25629           0 :       i4 = i7;
   25630           0 :      }
   25631           0 :      if ((i5 | 0) > 0) {
   25632           0 :       i7 = i5;
   25633           0 :       i6 = i4;
   25634           0 :       while (1) {
   25635           0 :        i7 = i7 + -1 | 0;
   25636           0 :        HEAP32[i6 + 8 >> 2] = 0;
   25637           0 :        if ((i7 | 0) <= 0) {
   25638           0 :         break;
   25639           0 :        } else {
   25640           0 :         i6 = i6 + 16 | 0;
   25641           0 :        }
   25642           0 :       }
   25643           0 :       i4 = i4 + (i5 << 4) | 0;
   25644           0 :      }
   25645           0 :     }
   25646           0 :    } while (0);
   25647           0 :    HEAP32[i3 >> 2] = i4;
   25648           0 :   } else {
   25649           0 :    _luaV_execute(i1);
   25650           0 :   }
   25651           0 :   _unroll(i1, 0);
   25652           0 :   STACKTOP = i2;
   25653           0 :   return;
   25654           0 :  } else {
   25655           0 :   _resume_error(i1, 2488, i6);
   25656           0 :  }
   25657           1 : }
   25658           1 : function _lua_setupvalue(i1, i5, i3) {
   25659           0 :  i1 = i1 | 0;
   25660           0 :  i5 = i5 | 0;
   25661           0 :  i3 = i3 | 0;
   25662           0 :  var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   25663           0 :  i2 = STACKTOP;
   25664           0 :  i6 = HEAP32[i1 + 16 >> 2] | 0;
   25665           0 :  do {
   25666           0 :   if ((i5 | 0) <= 0) {
   25667           0 :    if (!((i5 | 0) < -1000999)) {
   25668           0 :     i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
   25669           0 :     break;
   25670           0 :    }
   25671           0 :    if ((i5 | 0) == -1001e3) {
   25672           0 :     i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   25673           0 :     break;
   25674           0 :    }
   25675           0 :    i5 = -1001e3 - i5 | 0;
   25676           0 :    i6 = HEAP32[i6 >> 2] | 0;
   25677           0 :    if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   25678           0 :     i5 = i4 + (i5 + -1 << 4) + 16 | 0;
   25679           0 :    } else {
   25680           0 :     i5 = 5192;
   25681           0 :    }
   25682           0 :   } else {
   25683           0 :    i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0;
   25684           0 :    i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   25685           0 :   }
   25686           0 :  } while (0);
   25687           0 :  i4 = HEAP32[i5 + 8 >> 2] & 63;
   25688           0 :  do {
   25689           0 :   if ((i4 | 0) == 6) {
   25690           0 :    i5 = HEAP32[i5 >> 2] | 0;
   25691           0 :    i4 = HEAP32[i5 + 12 >> 2] | 0;
   25692           0 :    if ((i3 | 0) <= 0) {
   25693           0 :     i6 = 0;
   25694           0 :     STACKTOP = i2;
   25695           0 :     return i6 | 0;
   25696           0 :    }
   25697           0 :    if ((HEAP32[i4 + 40 >> 2] | 0) < (i3 | 0)) {
   25698           0 :     i6 = 0;
   25699           0 :     STACKTOP = i2;
   25700           0 :     return i6 | 0;
   25701           0 :    }
   25702           0 :    i6 = i3 + -1 | 0;
   25703           0 :    i3 = HEAP32[i5 + 16 + (i6 << 2) >> 2] | 0;
   25704           0 :    i5 = HEAP32[i3 + 8 >> 2] | 0;
   25705           0 :    i4 = HEAP32[(HEAP32[i4 + 28 >> 2] | 0) + (i6 << 3) >> 2] | 0;
   25706           0 :    if ((i4 | 0) == 0) {
   25707           0 :     i4 = 936;
   25708           0 :    } else {
   25709           0 :     i4 = i4 + 16 | 0;
   25710           0 :    }
   25711           0 :   } else if ((i4 | 0) == 38) {
   25712           0 :    i6 = HEAP32[i5 >> 2] | 0;
   25713           0 :    if ((i3 | 0) <= 0) {
   25714           0 :     i6 = 0;
   25715           0 :     STACKTOP = i2;
   25716           0 :     return i6 | 0;
   25717           0 :    }
   25718           0 :    if ((HEAPU8[i6 + 6 | 0] | 0 | 0) >= (i3 | 0)) {
   25719           0 :     i4 = 936;
   25720           0 :     i5 = i6 + (i3 + -1 << 4) + 16 | 0;
   25721           0 :     i3 = i6;
   25722           0 :     break;
   25723           0 :    } else {
   25724           0 :     i6 = 0;
   25725           0 :     STACKTOP = i2;
   25726           0 :     return i6 | 0;
   25727           0 :    }
   25728           0 :   } else {
   25729           0 :    i6 = 0;
   25730           0 :    STACKTOP = i2;
   25731           0 :    return i6 | 0;
   25732           0 :   }
   25733           0 :  } while (0);
   25734           0 :  i6 = i1 + 8 | 0;
   25735           0 :  i7 = HEAP32[i6 >> 2] | 0;
   25736           0 :  i10 = i7 + -16 | 0;
   25737           0 :  HEAP32[i6 >> 2] = i10;
   25738           0 :  i9 = HEAP32[i10 + 4 >> 2] | 0;
   25739           0 :  i8 = i5;
   25740           0 :  HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
   25741           0 :  HEAP32[i8 + 4 >> 2] = i9;
   25742           0 :  HEAP32[i5 + 8 >> 2] = HEAP32[i7 + -8 >> 2];
   25743           0 :  i5 = HEAP32[i6 >> 2] | 0;
   25744           0 :  if ((HEAP32[i5 + 8 >> 2] & 64 | 0) == 0) {
   25745           0 :   i10 = i4;
   25746           0 :   STACKTOP = i2;
   25747           0 :   return i10 | 0;
   25748           0 :  }
   25749           0 :  i5 = HEAP32[i5 >> 2] | 0;
   25750           0 :  if ((HEAP8[i5 + 5 | 0] & 3) == 0) {
   25751           0 :   i10 = i4;
   25752           0 :   STACKTOP = i2;
   25753           0 :   return i10 | 0;
   25754           0 :  }
   25755           0 :  if ((HEAP8[i3 + 5 | 0] & 4) == 0) {
   25756           0 :   i10 = i4;
   25757           0 :   STACKTOP = i2;
   25758           0 :   return i10 | 0;
   25759           0 :  }
   25760           0 :  _luaC_barrier_(i1, i3, i5);
   25761           0 :  i10 = i4;
   25762           0 :  STACKTOP = i2;
   25763           0 :  return i10 | 0;
   25764           1 : }
   25765        2858 : function _luaC_forcestep(i2) {
   25766        2858 :  i2 = i2 | 0;
   25767        2858 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
   25768        2858 :  i1 = STACKTOP;
   25769        2858 :  i3 = HEAP32[i2 + 12 >> 2] | 0;
   25770        2858 :  do {
   25771        2858 :   if ((HEAP8[i3 + 62 | 0] | 0) == 2) {
   25772        2858 :    i4 = i3 + 20 | 0;
   25773        2858 :    i6 = HEAP32[i4 >> 2] | 0;
   25774        2858 :    do {
   25775        2858 :     if ((i6 | 0) != 0) {
   25776        2858 :      i5 = i3 + 61 | 0;
   25777        2858 :      if ((HEAP8[i5] | 0) != 5) {
   25778        2858 :       do {
   25779        2858 :        _singlestep(i2) | 0;
   25780        2858 :       } while ((HEAP8[i5] | 0) != 5);
   25781        2858 :      }
   25782        2858 :      HEAP8[i5] = 0;
   25783        2858 :      i5 = HEAP32[i3 + 8 >> 2] | 0;
   25784        2858 :      i7 = HEAP32[i3 + 12 >> 2] | 0;
   25785        2858 :      if ((i7 + i5 | 0) >>> 0 > (Math_imul(HEAP32[i3 + 160 >> 2] | 0, (i6 >>> 0) / 100 | 0) | 0) >>> 0) {
   25786        2858 :       HEAP32[i4 >> 2] = 0;
   25787        2858 :       break;
   25788        2858 :      } else {
   25789        2858 :       HEAP32[i4 >> 2] = i6;
   25790        2858 :       break;
   25791        2858 :      }
   25792        2858 :     } else {
   25793        2858 :      _luaC_fullgc(i2, 0);
   25794        2858 :      i5 = HEAP32[i3 + 8 >> 2] | 0;
   25795        2858 :      i7 = HEAP32[i3 + 12 >> 2] | 0;
   25796        2858 :      HEAP32[i4 >> 2] = i7 + i5;
   25797        2858 :     }
   25798        2858 :    } while (0);
   25799        2858 :    i4 = i5 + i7 | 0;
   25800        2858 :    i5 = (i4 | 0) / 100 | 0;
   25801        2858 :    i6 = HEAP32[i3 + 156 >> 2] | 0;
   25802        2858 :    if ((i6 | 0) < (2147483644 / (i5 | 0) | 0 | 0)) {
   25803        2858 :     i5 = Math_imul(i6, i5) | 0;
   25804        2858 :    } else {
   25805        2858 :     i5 = 2147483644;
   25806        2858 :    }
   25807        2858 :    _luaE_setdebt(i3, i4 - i5 | 0);
   25808        2858 :    i5 = i3 + 61 | 0;
   25809        2858 :   } else {
   25810        2858 :    i4 = i3 + 12 | 0;
   25811        2858 :    i5 = HEAP32[i3 + 164 >> 2] | 0;
   25812        2858 :    i7 = (i5 | 0) < 40 ? 40 : i5;
   25813        2858 :    i5 = ((HEAP32[i4 >> 2] | 0) / 200 | 0) + 1 | 0;
   25814        2858 :    if ((i5 | 0) < (2147483644 / (i7 | 0) | 0 | 0)) {
   25815        2858 :     i8 = Math_imul(i5, i7) | 0;
   25816        2858 :    } else {
   25817        2858 :     i8 = 2147483644;
   25818        2858 :    }
   25819        2858 :    i5 = i3 + 61 | 0;
   25820        2858 :    do {
   25821        2858 :     i8 = i8 - (_singlestep(i2) | 0) | 0;
   25822        2858 :     i9 = (HEAP8[i5] | 0) == 5;
   25823        2858 :     if (!((i8 | 0) > -1600)) {
   25824        2858 :      i6 = 17;
   25825        2858 :      break;
   25826        2858 :     }
   25827        2858 :    } while (!i9);
   25828        2858 :    if ((i6 | 0) == 17 ? !i9 : 0) {
   25829        2858 :     _luaE_setdebt(i3, ((i8 | 0) / (i7 | 0) | 0) * 200 | 0);
   25830        2858 :     break;
   25831        2858 :    }
   25832        2858 :    i6 = (HEAP32[i3 + 20 >> 2] | 0) / 100 | 0;
   25833        2858 :    i7 = HEAP32[i3 + 156 >> 2] | 0;
   25834        2858 :    if ((i7 | 0) < (2147483644 / (i6 | 0) | 0 | 0)) {
   25835        2858 :     i6 = Math_imul(i7, i6) | 0;
   25836        2858 :    } else {
   25837        2858 :     i6 = 2147483644;
   25838        2858 :    }
   25839        2858 :    _luaE_setdebt(i3, (HEAP32[i3 + 8 >> 2] | 0) - i6 + (HEAP32[i4 >> 2] | 0) | 0);
   25840        2858 :   }
   25841        2858 :  } while (0);
   25842        2858 :  i3 = i3 + 104 | 0;
   25843        2858 :  if ((HEAP32[i3 >> 2] | 0) == 0) {
   25844        2858 :   STACKTOP = i1;
   25845        2858 :   return;
   25846        2858 :  } else {
   25847        2858 :   i4 = 0;
   25848        2858 :  }
   25849        2858 :  while (1) {
   25850        2858 :   if ((i4 | 0) >= 4 ? (HEAP8[i5] | 0) != 5 : 0) {
   25851        2858 :    i6 = 26;
   25852        2858 :    break;
   25853        2858 :   }
   25854        2858 :   _GCTM(i2, 1);
   25855        2858 :   if ((HEAP32[i3 >> 2] | 0) == 0) {
   25856        2858 :    i6 = 26;
   25857        2858 :    break;
   25858        2858 :   } else {
   25859        2858 :    i4 = i4 + 1 | 0;
   25860        2858 :   }
   25861        2858 :  }
   25862        2858 :  if ((i6 | 0) == 26) {
   25863        2858 :   STACKTOP = i1;
   25864        2858 :   return;
   25865        2858 :  }
   25866        2858 : }
   25867           1 : function _luaL_loadfilex(i1, i9, i7) {
   25868           1 :  i1 = i1 | 0;
   25869           1 :  i9 = i9 | 0;
   25870           1 :  i7 = i7 | 0;
   25871           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0;
   25872           1 :  i5 = STACKTOP;
   25873           1 :  STACKTOP = STACKTOP + 1056 | 0;
   25874           1 :  i3 = i5;
   25875           1 :  i6 = i5 + 16 | 0;
   25876           1 :  i8 = i5 + 12 | 0;
   25877           1 :  i2 = (_lua_gettop(i1) | 0) + 1 | 0;
   25878           1 :  i4 = (i9 | 0) == 0;
   25879           1 :  if (!i4) {
   25880           1 :   HEAP32[i3 >> 2] = i9;
   25881           1 :   _lua_pushfstring(i1, 1304, i3) | 0;
   25882           1 :   i10 = _fopen(i9 | 0, 1312) | 0;
   25883           1 :   HEAP32[i6 + 4 >> 2] = i10;
   25884           1 :   if ((i10 | 0) == 0) {
   25885           1 :    i10 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
   25886           1 :    i9 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0;
   25887           1 :    HEAP32[i3 >> 2] = 1320;
   25888           1 :    HEAP32[i3 + 4 >> 2] = i9;
   25889           1 :    HEAP32[i3 + 8 >> 2] = i10;
   25890           1 :    _lua_pushfstring(i1, 1720, i3) | 0;
   25891           1 :    _lua_remove(i1, i2);
   25892           1 :    i10 = 7;
   25893           1 :    STACKTOP = i5;
   25894           1 :    return i10 | 0;
   25895           1 :   }
   25896           1 :  } else {
   25897           1 :   _lua_pushlstring(i1, 1296, 6) | 0;
   25898           1 :   HEAP32[i6 + 4 >> 2] = HEAP32[_stdin >> 2];
   25899           1 :  }
   25900           1 :  if ((_skipcomment(i6, i8) | 0) != 0) {
   25901           1 :   i10 = HEAP32[i6 >> 2] | 0;
   25902           1 :   HEAP32[i6 >> 2] = i10 + 1;
   25903           1 :   HEAP8[i6 + i10 + 8 | 0] = 10;
   25904           1 :  }
   25905           1 :  i10 = HEAP32[i8 >> 2] | 0;
   25906           1 :  do {
   25907           1 :   if (!((i10 | 0) != 27 | i4)) {
   25908           1 :    i11 = i6 + 4 | 0;
   25909           1 :    i10 = _freopen(i9 | 0, 1328, HEAP32[i11 >> 2] | 0) | 0;
   25910           1 :    HEAP32[i11 >> 2] = i10;
   25911           1 :    if ((i10 | 0) != 0) {
   25912           1 :     _skipcomment(i6, i8) | 0;
   25913           1 :     i10 = HEAP32[i8 >> 2] | 0;
   25914           1 :     break;
   25915           1 :    }
   25916           1 :    i11 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
   25917           1 :    i10 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0;
   25918           1 :    HEAP32[i3 >> 2] = 1336;
   25919           1 :    HEAP32[i3 + 4 >> 2] = i10;
   25920           1 :    HEAP32[i3 + 8 >> 2] = i11;
   25921           1 :    _lua_pushfstring(i1, 1720, i3) | 0;
   25922           1 :    _lua_remove(i1, i2);
   25923           1 :    i11 = 7;
   25924           1 :    STACKTOP = i5;
   25925           1 :    return i11 | 0;
   25926           1 :   }
   25927           1 :  } while (0);
   25928           1 :  if (!((i10 | 0) == -1)) {
   25929           1 :   i11 = HEAP32[i6 >> 2] | 0;
   25930           1 :   HEAP32[i6 >> 2] = i11 + 1;
   25931           1 :   HEAP8[i6 + i11 + 8 | 0] = i10;
   25932           1 :  }
   25933           1 :  i7 = _lua_load(i1, 1, i6, _lua_tolstring(i1, -1, 0) | 0, i7) | 0;
   25934           1 :  i8 = HEAP32[i6 + 4 >> 2] | 0;
   25935           1 :  i6 = _ferror(i8 | 0) | 0;
   25936           1 :  if (!i4) {
   25937           1 :   _fclose(i8 | 0) | 0;
   25938           1 :  }
   25939           1 :  if ((i6 | 0) == 0) {
   25940           1 :   _lua_remove(i1, i2);
   25941           1 :   i11 = i7;
   25942           1 :   STACKTOP = i5;
   25943           1 :   return i11 | 0;
   25944           1 :  } else {
   25945           1 :   _lua_settop(i1, i2);
   25946           1 :   i11 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
   25947           1 :   i10 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0;
   25948           1 :   HEAP32[i3 >> 2] = 1344;
   25949           1 :   HEAP32[i3 + 4 >> 2] = i10;
   25950           1 :   HEAP32[i3 + 8 >> 2] = i11;
   25951           1 :   _lua_pushfstring(i1, 1720, i3) | 0;
   25952           1 :   _lua_remove(i1, i2);
   25953           1 :   i11 = 7;
   25954           1 :   STACKTOP = i5;
   25955           1 :   return i11 | 0;
   25956           1 :  }
   25957           1 :  return 0;
   25958           1 : }
   25959           3 : function _newupvalue(i3, i1, i2) {
   25960           3 :  i3 = i3 | 0;
   25961           3 :  i1 = i1 | 0;
   25962           3 :  i2 = i2 | 0;
   25963           3 :  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
   25964           3 :  i4 = STACKTOP;
   25965           3 :  STACKTOP = STACKTOP + 16 | 0;
   25966           3 :  i12 = i4;
   25967           3 :  i5 = HEAP32[i3 >> 2] | 0;
   25968           3 :  i9 = i5 + 40 | 0;
   25969           3 :  i7 = HEAP32[i9 >> 2] | 0;
   25970           3 :  i6 = i3 + 47 | 0;
   25971           3 :  i10 = HEAPU8[i6] | 0;
   25972           3 :  if ((i10 + 1 | 0) >>> 0 > 255) {
   25973           3 :   i11 = i3 + 12 | 0;
   25974           3 :   i8 = HEAP32[(HEAP32[i11 >> 2] | 0) + 52 >> 2] | 0;
   25975           3 :   i13 = HEAP32[i5 + 64 >> 2] | 0;
   25976           3 :   if ((i13 | 0) == 0) {
   25977           3 :    i15 = 6552;
   25978           3 :    HEAP32[i12 >> 2] = 6880;
   25979           3 :    i14 = i12 + 4 | 0;
   25980           3 :    HEAP32[i14 >> 2] = 255;
   25981           3 :    i14 = i12 + 8 | 0;
   25982           3 :    HEAP32[i14 >> 2] = i15;
   25983           3 :    i14 = _luaO_pushfstring(i8, 6592, i12) | 0;
   25984           3 :    i15 = HEAP32[i11 >> 2] | 0;
   25985           3 :    _luaX_syntaxerror(i15, i14);
   25986           3 :   }
   25987           3 :   HEAP32[i12 >> 2] = i13;
   25988           3 :   i14 = _luaO_pushfstring(i8, 6568, i12) | 0;
   25989           3 :   HEAP32[i12 >> 2] = 6880;
   25990           3 :   i15 = i12 + 4 | 0;
   25991           3 :   HEAP32[i15 >> 2] = 255;
   25992           3 :   i15 = i12 + 8 | 0;
   25993           3 :   HEAP32[i15 >> 2] = i14;
   25994           3 :   i15 = _luaO_pushfstring(i8, 6592, i12) | 0;
   25995           3 :   i14 = HEAP32[i11 >> 2] | 0;
   25996           3 :   _luaX_syntaxerror(i14, i15);
   25997           3 :  }
   25998           3 :  if ((i10 | 0) < (i7 | 0)) {
   25999           3 :   i8 = i7;
   26000           3 :  } else {
   26001           3 :   i8 = i5 + 28 | 0;
   26002           3 :   HEAP32[i8 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i8 >> 2] | 0, i9, 8, 255, 6880) | 0;
   26003           3 :   i8 = HEAP32[i9 >> 2] | 0;
   26004           3 :  }
   26005           3 :  i9 = i5 + 28 | 0;
   26006           3 :  if ((i7 | 0) < (i8 | 0)) {
   26007           3 :   while (1) {
   26008           3 :    i10 = i7 + 1 | 0;
   26009           3 :    HEAP32[(HEAP32[i9 >> 2] | 0) + (i7 << 3) >> 2] = 0;
   26010           3 :    if ((i10 | 0) < (i8 | 0)) {
   26011           3 :     i7 = i10;
   26012           3 :    } else {
   26013           3 :     break;
   26014           3 :    }
   26015           3 :   }
   26016           3 :  }
   26017           3 :  HEAP8[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) + 4 | 0] = (HEAP32[i2 >> 2] | 0) == 7 | 0;
   26018           3 :  HEAP8[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) + 5 | 0] = HEAP32[i2 + 8 >> 2];
   26019           3 :  HEAP32[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) >> 2] = i1;
   26020           3 :  if ((HEAP8[i1 + 5 | 0] & 3) == 0) {
   26021           3 :   i15 = HEAP8[i6] | 0;
   26022           3 :   i14 = i15 + 1 << 24 >> 24;
   26023           3 :   HEAP8[i6] = i14;
   26024           3 :   i15 = i15 & 255;
   26025           3 :   STACKTOP = i4;
   26026           3 :   return i15 | 0;
   26027           3 :  }
   26028           3 :  if ((HEAP8[i5 + 5 | 0] & 4) == 0) {
   26029           3 :   i15 = HEAP8[i6] | 0;
   26030           3 :   i14 = i15 + 1 << 24 >> 24;
   26031           3 :   HEAP8[i6] = i14;
   26032           3 :   i15 = i15 & 255;
   26033           3 :   STACKTOP = i4;
   26034           3 :   return i15 | 0;
   26035           3 :  }
   26036           3 :  _luaC_barrier_(HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0, i5, i1);
   26037           3 :  i15 = HEAP8[i6] | 0;
   26038           3 :  i14 = i15 + 1 << 24 >> 24;
   26039           3 :  HEAP8[i6] = i14;
   26040           3 :  i15 = i15 & 255;
   26041           3 :  STACKTOP = i4;
   26042           3 :  return i15 | 0;
   26043           3 : }
   26044           3 : function _close_func(i1) {
   26045           3 :  i1 = i1 | 0;
   26046           3 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   26047           3 :  i6 = STACKTOP;
   26048           3 :  i2 = HEAP32[i1 + 52 >> 2] | 0;
   26049           3 :  i5 = i1 + 48 | 0;
   26050           3 :  i4 = HEAP32[i5 >> 2] | 0;
   26051           3 :  i3 = HEAP32[i4 >> 2] | 0;
   26052           3 :  _luaK_ret(i4, 0, 0);
   26053           3 :  _leaveblock(i4);
   26054           3 :  i7 = i4 + 20 | 0;
   26055           3 :  i8 = HEAP32[i7 >> 2] | 0;
   26056           3 :  if ((i8 + 1 | 0) >>> 0 > 1073741823) {
   26057           3 :   _luaM_toobig(i2);
   26058           3 :  }
   26059           3 :  i10 = i3 + 12 | 0;
   26060           3 :  i9 = i3 + 48 | 0;
   26061           3 :  HEAP32[i10 >> 2] = _luaM_realloc_(i2, HEAP32[i10 >> 2] | 0, HEAP32[i9 >> 2] << 2, i8 << 2) | 0;
   26062           3 :  HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
   26063           3 :  i8 = HEAP32[i7 >> 2] | 0;
   26064           3 :  if ((i8 + 1 | 0) >>> 0 > 1073741823) {
   26065           3 :   _luaM_toobig(i2);
   26066           3 :  }
   26067           3 :  i9 = i3 + 20 | 0;
   26068           3 :  i10 = i3 + 52 | 0;
   26069           3 :  HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 2, i8 << 2) | 0;
   26070           3 :  HEAP32[i10 >> 2] = HEAP32[i7 >> 2];
   26071           3 :  i8 = i4 + 32 | 0;
   26072           3 :  i7 = HEAP32[i8 >> 2] | 0;
   26073           3 :  if ((i7 + 1 | 0) >>> 0 > 268435455) {
   26074           3 :   _luaM_toobig(i2);
   26075           3 :  }
   26076           3 :  i9 = i3 + 8 | 0;
   26077           3 :  i10 = i3 + 44 | 0;
   26078           3 :  HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 4, i7 << 4) | 0;
   26079           3 :  HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
   26080           3 :  i8 = i4 + 36 | 0;
   26081           3 :  i7 = HEAP32[i8 >> 2] | 0;
   26082           3 :  if ((i7 + 1 | 0) >>> 0 > 1073741823) {
   26083           3 :   _luaM_toobig(i2);
   26084           3 :  }
   26085           3 :  i9 = i3 + 16 | 0;
   26086           3 :  i10 = i3 + 56 | 0;
   26087           3 :  HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 2, i7 << 2) | 0;
   26088           3 :  HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
   26089           3 :  i7 = i4 + 44 | 0;
   26090           3 :  i8 = HEAP16[i7 >> 1] | 0;
   26091           3 :  if ((i8 + 1 | 0) >>> 0 > 357913941) {
   26092           3 :   _luaM_toobig(i2);
   26093           3 :  }
   26094           3 :  i10 = i3 + 24 | 0;
   26095           3 :  i9 = i3 + 60 | 0;
   26096           3 :  HEAP32[i10 >> 2] = _luaM_realloc_(i2, HEAP32[i10 >> 2] | 0, (HEAP32[i9 >> 2] | 0) * 12 | 0, i8 * 12 | 0) | 0;
   26097           3 :  HEAP32[i9 >> 2] = HEAP16[i7 >> 1] | 0;
   26098           3 :  i9 = i4 + 47 | 0;
   26099           3 :  i8 = i3 + 28 | 0;
   26100           3 :  i10 = i3 + 40 | 0;
   26101           3 :  HEAP32[i8 >> 2] = _luaM_realloc_(i2, HEAP32[i8 >> 2] | 0, HEAP32[i10 >> 2] << 3, HEAPU8[i9] << 3) | 0;
   26102           3 :  HEAP32[i10 >> 2] = HEAPU8[i9] | 0;
   26103           3 :  HEAP32[i5 >> 2] = HEAP32[i4 + 8 >> 2];
   26104           3 :  if (((HEAP32[i1 + 16 >> 2] | 0) + -288 | 0) >>> 0 < 2) {
   26105           3 :   i10 = HEAP32[i1 + 24 >> 2] | 0;
   26106           3 :   _luaX_newstring(i1, i10 + 16 | 0, HEAP32[i10 + 12 >> 2] | 0) | 0;
   26107           3 :  }
   26108           3 :  i10 = i2 + 8 | 0;
   26109           3 :  HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16;
   26110           3 :  if ((HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 12 >> 2] | 0) <= 0) {
   26111           3 :   STACKTOP = i6;
   26112           3 :   return;
   26113           3 :  }
   26114           3 :  _luaC_step(i2);
   26115           3 :  STACKTOP = i6;
   26116           3 :  return;
   26117           3 : }
   26118           1 : function _lua_topointer(i3, i6) {
   26119           0 :  i3 = i3 | 0;
   26120           0 :  i6 = i6 | 0;
   26121           0 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
   26122           0 :  i1 = STACKTOP;
   26123           0 :  i4 = HEAP32[i3 + 16 >> 2] | 0;
   26124           0 :  i5 = (i6 | 0) > 0;
   26125           0 :  do {
   26126           0 :   if (!i5) {
   26127           0 :    if (!((i6 | 0) < -1000999)) {
   26128           0 :     i7 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0;
   26129           0 :     break;
   26130           0 :    }
   26131           0 :    if ((i6 | 0) == -1001e3) {
   26132           0 :     i7 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
   26133           0 :     break;
   26134           0 :    }
   26135           0 :    i8 = -1001e3 - i6 | 0;
   26136           0 :    i9 = HEAP32[i4 >> 2] | 0;
   26137           0 :    if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i7 = HEAP32[i9 >> 2] | 0, (i8 | 0) <= (HEAPU8[i7 + 6 | 0] | 0 | 0)) : 0) {
   26138           0 :     i7 = i7 + (i8 + -1 << 4) + 16 | 0;
   26139           0 :    } else {
   26140           0 :     i7 = 5192;
   26141           0 :    }
   26142           0 :   } else {
   26143           0 :    i7 = (HEAP32[i4 >> 2] | 0) + (i6 << 4) | 0;
   26144           0 :    i7 = i7 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i7 : 5192;
   26145           0 :   }
   26146           0 :  } while (0);
   26147           0 :  switch (HEAP32[i7 + 8 >> 2] & 63 | 0) {
   26148           0 :  case 22:
   26149           0 :   {
   26150           0 :    i9 = HEAP32[i7 >> 2] | 0;
   26151           0 :    STACKTOP = i1;
   26152           0 :    return i9 | 0;
   26153           0 :   }
   26154           0 :  case 2:
   26155           0 :  case 7:
   26156           0 :   {
   26157           0 :    do {
   26158           0 :     if (!i5) {
   26159           0 :      if (!((i6 | 0) < -1000999)) {
   26160           0 :       i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0;
   26161           0 :       break;
   26162           0 :      }
   26163           0 :      if ((i6 | 0) == -1001e3) {
   26164           0 :       i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
   26165           0 :       break;
   26166           0 :      }
   26167           0 :      i3 = -1001e3 - i6 | 0;
   26168           0 :      i4 = HEAP32[i4 >> 2] | 0;
   26169           0 :      if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
   26170           0 :       i2 = i2 + (i3 + -1 << 4) + 16 | 0;
   26171           0 :      } else {
   26172           0 :       i2 = 5192;
   26173           0 :      }
   26174           0 :     } else {
   26175           0 :      i2 = (HEAP32[i4 >> 2] | 0) + (i6 << 4) | 0;
   26176           0 :      i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
   26177           0 :     }
   26178           0 :    } while (0);
   26179           0 :    i3 = HEAP32[i2 + 8 >> 2] & 15;
   26180           0 :    if ((i3 | 0) == 7) {
   26181           0 :     i9 = (HEAP32[i2 >> 2] | 0) + 24 | 0;
   26182           0 :     STACKTOP = i1;
   26183           0 :     return i9 | 0;
   26184           0 :    } else if ((i3 | 0) == 2) {
   26185           0 :     i9 = HEAP32[i2 >> 2] | 0;
   26186           0 :     STACKTOP = i1;
   26187           0 :     return i9 | 0;
   26188           0 :    } else {
   26189           0 :     i9 = 0;
   26190           0 :     STACKTOP = i1;
   26191           0 :     return i9 | 0;
   26192           0 :    }
   26193           0 :   }
   26194           0 :  case 8:
   26195           0 :   {
   26196           0 :    i9 = HEAP32[i7 >> 2] | 0;
   26197           0 :    STACKTOP = i1;
   26198           0 :    return i9 | 0;
   26199           0 :   }
   26200           0 :  case 5:
   26201           0 :   {
   26202           0 :    i9 = HEAP32[i7 >> 2] | 0;
   26203           0 :    STACKTOP = i1;
   26204           0 :    return i9 | 0;
   26205           0 :   }
   26206           0 :  case 38:
   26207           0 :   {
   26208           0 :    i9 = HEAP32[i7 >> 2] | 0;
   26209           0 :    STACKTOP = i1;
   26210           0 :    return i9 | 0;
   26211           0 :   }
   26212           0 :  case 6:
   26213           0 :   {
   26214           0 :    i9 = HEAP32[i7 >> 2] | 0;
   26215           0 :    STACKTOP = i1;
   26216           0 :    return i9 | 0;
   26217           0 :   }
   26218           0 :  default:
   26219           0 :   {
   26220           0 :    i9 = 0;
   26221           0 :    STACKTOP = i1;
   26222           0 :    return i9 | 0;
   26223           0 :   }
   26224           0 :  }
   26225           0 :  return 0;
   26226           1 : }
   26227      427853 : function _luaH_get(i4, i6) {
   26228      427853 :  i4 = i4 | 0;
   26229      427853 :  i6 = i6 | 0;
   26230      427853 :  var i1 = 0, i2 = 0, i3 = 0, d5 = 0.0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0;
   26231      427853 :  i3 = STACKTOP;
   26232      427853 :  STACKTOP = STACKTOP + 16 | 0;
   26233      427853 :  i8 = i3 + 8 | 0;
   26234      427853 :  i9 = i3;
   26235      427853 :  i7 = i6 + 8 | 0;
   26236      427853 :  i10 = HEAP32[i7 >> 2] & 63;
   26237      427853 :  if ((i10 | 0) == 4) {
   26238      427853 :   i6 = HEAP32[i6 >> 2] | 0;
   26239      427853 :   i7 = (HEAP32[i4 + 16 >> 2] | 0) + (((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 & HEAP32[i6 + 8 >> 2]) << 5) | 0;
   26240      427853 :   while (1) {
   26241      427853 :    if ((HEAP32[i7 + 24 >> 2] | 0) == 68 ? (HEAP32[i7 + 16 >> 2] | 0) == (i6 | 0) : 0) {
   26242      427853 :     break;
   26243      427853 :    }
   26244      427853 :    i4 = HEAP32[i7 + 28 >> 2] | 0;
   26245      427853 :    if ((i4 | 0) == 0) {
   26246      427853 :     i2 = 5192;
   26247      427853 :     i1 = 22;
   26248      427853 :     break;
   26249      427853 :    } else {
   26250      427853 :     i7 = i4;
   26251      427853 :    }
   26252      427853 :   }
   26253      427853 :   if ((i1 | 0) == 22) {
   26254      427853 :    STACKTOP = i3;
   26255      427853 :    return i2 | 0;
   26256      427853 :   }
   26257      427853 :   i10 = i7;
   26258      427853 :   STACKTOP = i3;
   26259      427853 :   return i10 | 0;
   26260      427853 :  } else if ((i10 | 0) == 3) {
   26261      427853 :   d11 = +HEAPF64[i6 >> 3];
   26262      427853 :   HEAPF64[i9 >> 3] = d11 + 6755399441055744.0;
   26263      427853 :   i9 = HEAP32[i9 >> 2] | 0;
   26264      427853 :   d5 = +(i9 | 0);
   26265      427853 :   if (d5 == d11) {
   26266      427853 :    i6 = i9 + -1 | 0;
   26267      427853 :    if (i6 >>> 0 < (HEAP32[i4 + 28 >> 2] | 0) >>> 0) {
   26268      427853 :     i10 = (HEAP32[i4 + 12 >> 2] | 0) + (i6 << 4) | 0;
   26269      427853 :     STACKTOP = i3;
   26270      427853 :     return i10 | 0;
   26271      427853 :    }
   26272      427853 :    HEAPF64[i8 >> 3] = d5 + 1.0;
   26273      427853 :    i6 = (HEAP32[i8 + 4 >> 2] | 0) + (HEAP32[i8 >> 2] | 0) | 0;
   26274      427853 :    if ((i6 | 0) < 0) {
   26275      427853 :     i7 = 0 - i6 | 0;
   26276      427853 :     i6 = (i6 | 0) == (i7 | 0) ? 0 : i7;
   26277      427853 :    }
   26278      427853 :    i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((i6 | 0) % ((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
   26279      427853 :    while (1) {
   26280      427853 :     if ((HEAP32[i4 + 24 >> 2] | 0) == 3 ? +HEAPF64[i4 + 16 >> 3] == d5 : 0) {
   26281      427853 :      break;
   26282      427853 :     }
   26283      427853 :     i6 = HEAP32[i4 + 28 >> 2] | 0;
   26284      427853 :     if ((i6 | 0) == 0) {
   26285      427853 :      i2 = 5192;
   26286      427853 :      i1 = 22;
   26287      427853 :      break;
   26288      427853 :     } else {
   26289      427853 :      i4 = i6;
   26290      427853 :     }
   26291      427853 :    }
   26292      427853 :    if ((i1 | 0) == 22) {
   26293      427853 :     STACKTOP = i3;
   26294      427853 :     return i2 | 0;
   26295      427853 :    }
   26296      427853 :    i10 = i4;
   26297      427853 :    STACKTOP = i3;
   26298      427853 :    return i10 | 0;
   26299      427853 :   }
   26300      427853 :  } else if ((i10 | 0) == 0) {
   26301      427853 :   i10 = 5192;
   26302      427853 :   STACKTOP = i3;
   26303      427853 :   return i10 | 0;
   26304      427853 :  }
   26305      427853 :  i8 = _mainposition(i4, i6) | 0;
   26306      427853 :  while (1) {
   26307      427853 :   if ((HEAP32[i8 + 24 >> 2] | 0) == (HEAP32[i7 >> 2] | 0) ? (_luaV_equalobj_(0, i8 + 16 | 0, i6) | 0) != 0 : 0) {
   26308      427853 :    break;
   26309      427853 :   }
   26310      427853 :   i4 = HEAP32[i8 + 28 >> 2] | 0;
   26311      427853 :   if ((i4 | 0) == 0) {
   26312      427853 :    i2 = 5192;
   26313      427853 :    i1 = 22;
   26314      427853 :    break;
   26315      427853 :   } else {
   26316      427853 :    i8 = i4;
   26317      427853 :   }
   26318      427853 :  }
   26319      427853 :  if ((i1 | 0) == 22) {
   26320      427853 :   STACKTOP = i3;
   26321      427853 :   return i2 | 0;
   26322      427853 :  }
   26323      427853 :  i10 = i8;
   26324      427853 :  STACKTOP = i3;
   26325      427853 :  return i10 | 0;
   26326      427853 : }
   26327          77 : function _suffixedexp(i1, i8) {
   26328          77 :  i1 = i1 | 0;
   26329          77 :  i8 = i8 | 0;
   26330          77 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
   26331          77 :  i2 = STACKTOP;
   26332          77 :  STACKTOP = STACKTOP + 80 | 0;
   26333          77 :  i10 = i2 + 48 | 0;
   26334          77 :  i3 = i2 + 24 | 0;
   26335          77 :  i6 = i2;
   26336          77 :  i4 = i1 + 48 | 0;
   26337          77 :  i9 = HEAP32[i4 >> 2] | 0;
   26338          77 :  i5 = HEAP32[i1 + 4 >> 2] | 0;
   26339          77 :  i7 = i1 + 16 | 0;
   26340          77 :  i12 = HEAP32[i7 >> 2] | 0;
   26341          77 :  if ((i12 | 0) == 40) {
   26342          77 :   _luaX_next(i1);
   26343          77 :   _subexpr(i1, i8, 0) | 0;
   26344          77 :   _check_match(i1, 41, 40, i5);
   26345          77 :   _luaK_dischargevars(HEAP32[i4 >> 2] | 0, i8);
   26346          77 :   i11 = i1 + 24 | 0;
   26347          77 :  } else if ((i12 | 0) == 288) {
   26348          77 :   i11 = i1 + 24 | 0;
   26349          77 :   i13 = HEAP32[i11 >> 2] | 0;
   26350          77 :   _luaX_next(i1);
   26351          77 :   i12 = HEAP32[i4 >> 2] | 0;
   26352          77 :   if ((_singlevaraux(i12, i13, i8, 1) | 0) == 0) {
   26353          77 :    _singlevaraux(i12, HEAP32[i1 + 72 >> 2] | 0, i8, 1) | 0;
   26354          77 :    i13 = _luaK_stringK(HEAP32[i4 >> 2] | 0, i13) | 0;
   26355          77 :    HEAP32[i10 + 16 >> 2] = -1;
   26356          77 :    HEAP32[i10 + 20 >> 2] = -1;
   26357          77 :    HEAP32[i10 >> 2] = 4;
   26358          77 :    HEAP32[i10 + 8 >> 2] = i13;
   26359          77 :    _luaK_indexed(i12, i8, i10);
   26360          77 :   }
   26361          77 :  } else {
   26362          77 :   _luaX_syntaxerror(i1, 6656);
   26363          77 :  }
   26364          77 :  i10 = i6 + 16 | 0;
   26365          77 :  i12 = i6 + 20 | 0;
   26366          77 :  i13 = i6 + 8 | 0;
   26367          77 :  L7 : while (1) {
   26368          77 :   switch (HEAP32[i7 >> 2] | 0) {
   26369          77 :   case 46:
   26370          77 :    {
   26371          77 :     _fieldsel(i1, i8);
   26372          77 :     continue L7;
   26373          77 :    }
   26374          77 :   case 91:
   26375          77 :    {
   26376          77 :     _luaK_exp2anyregup(i9, i8);
   26377          77 :     _luaX_next(i1);
   26378          77 :     _subexpr(i1, i3, 0) | 0;
   26379          77 :     _luaK_exp2val(HEAP32[i4 >> 2] | 0, i3);
   26380          77 :     if ((HEAP32[i7 >> 2] | 0) != 93) {
   26381          77 :      i3 = 10;
   26382          77 :      break L7;
   26383          77 :     }
   26384          77 :     _luaX_next(i1);
   26385          77 :     _luaK_indexed(i9, i8, i3);
   26386          77 :     continue L7;
   26387          77 :    }
   26388          77 :   case 58:
   26389          77 :    {
   26390          77 :     _luaX_next(i1);
   26391          77 :     if ((HEAP32[i7 >> 2] | 0) != 288) {
   26392          77 :      i3 = 13;
   26393          77 :      break L7;
   26394          77 :     }
   26395          77 :     i14 = HEAP32[i11 >> 2] | 0;
   26396          77 :     _luaX_next(i1);
   26397          77 :     i14 = _luaK_stringK(HEAP32[i4 >> 2] | 0, i14) | 0;
   26398          77 :     HEAP32[i10 >> 2] = -1;
   26399          77 :     HEAP32[i12 >> 2] = -1;
   26400          77 :     HEAP32[i6 >> 2] = 4;
   26401          77 :     HEAP32[i13 >> 2] = i14;
   26402          77 :     _luaK_self(i9, i8, i6);
   26403          77 :     _funcargs(i1, i8, i5);
   26404          77 :     continue L7;
   26405          77 :    }
   26406          77 :   case 123:
   26407          77 :   case 289:
   26408          77 :   case 40:
   26409          77 :    {
   26410          77 :     _luaK_exp2nextreg(i9, i8);
   26411          77 :     _funcargs(i1, i8, i5);
   26412          77 :     continue L7;
   26413          77 :    }
   26414          77 :   default:
   26415          77 :    {
   26416          77 :     i3 = 16;
   26417          77 :     break L7;
   26418          77 :    }
   26419          77 :   }
   26420          77 :  }
   26421          77 :  if ((i3 | 0) == 10) {
   26422          77 :   _error_expected(i1, 93);
   26423          77 :  } else if ((i3 | 0) == 13) {
   26424          77 :   _error_expected(i1, 288);
   26425          77 :  } else if ((i3 | 0) == 16) {
   26426          77 :   STACKTOP = i2;
   26427          77 :   return;
   26428          77 :  }
   26429          77 : }
   26430           2 : function _luaK_patchlist(i2, i7, i3) {
   26431           2 :  i2 = i2 | 0;
   26432           2 :  i7 = i7 | 0;
   26433           2 :  i3 = i3 | 0;
   26434           2 :  var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
   26435           2 :  i1 = STACKTOP;
   26436           2 :  if ((HEAP32[i2 + 20 >> 2] | 0) == (i3 | 0)) {
   26437           2 :   HEAP32[i2 + 24 >> 2] = i3;
   26438           2 :   i3 = i2 + 28 | 0;
   26439           2 :   if ((i7 | 0) == -1) {
   26440           2 :    STACKTOP = i1;
   26441           2 :    return;
   26442           2 :   }
   26443           2 :   i6 = HEAP32[i3 >> 2] | 0;
   26444           2 :   if ((i6 | 0) == -1) {
   26445           2 :    HEAP32[i3 >> 2] = i7;
   26446           2 :    STACKTOP = i1;
   26447           2 :    return;
   26448           2 :   }
   26449           2 :   i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0;
   26450           2 :   while (1) {
   26451           2 :    i3 = i5 + (i6 << 2) | 0;
   26452           2 :    i4 = HEAP32[i3 >> 2] | 0;
   26453           2 :    i8 = (i4 >>> 14) + -131071 | 0;
   26454           2 :    if ((i8 | 0) == -1) {
   26455           2 :     break;
   26456           2 :    }
   26457           2 :    i8 = i6 + 1 + i8 | 0;
   26458           2 :    if ((i8 | 0) == -1) {
   26459           2 :     break;
   26460           2 :    } else {
   26461           2 :     i6 = i8;
   26462           2 :    }
   26463           2 :   }
   26464           2 :   i5 = ~i6 + i7 | 0;
   26465           2 :   if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) {
   26466           2 :    _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624);
   26467           2 :   }
   26468           2 :   HEAP32[i3 >> 2] = (i5 << 14) + 2147467264 | i4 & 16383;
   26469           2 :   STACKTOP = i1;
   26470           2 :   return;
   26471           2 :  }
   26472           2 :  if ((i7 | 0) == -1) {
   26473           2 :   STACKTOP = i1;
   26474           2 :   return;
   26475           2 :  }
   26476           2 :  i6 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0;
   26477           2 :  i10 = i7;
   26478           2 :  while (1) {
   26479           2 :   i7 = i6 + (i10 << 2) | 0;
   26480           2 :   i9 = HEAP32[i7 >> 2] | 0;
   26481           2 :   i8 = (i9 >>> 14) + -131071 | 0;
   26482           2 :   if ((i8 | 0) == -1) {
   26483           2 :    i8 = -1;
   26484           2 :   } else {
   26485           2 :    i8 = i10 + 1 + i8 | 0;
   26486           2 :   }
   26487           2 :   if ((i10 | 0) > 0 ? (i4 = i6 + (i10 + -1 << 2) | 0, i5 = HEAP32[i4 >> 2] | 0, (HEAP8[5584 + (i5 & 63) | 0] | 0) < 0) : 0) {
   26488           2 :    i12 = i4;
   26489           2 :    i11 = i5;
   26490           2 :   } else {
   26491           2 :    i12 = i7;
   26492           2 :    i11 = i9;
   26493           2 :   }
   26494           2 :   if ((i11 & 63 | 0) == 28) {
   26495           2 :    HEAP32[i12 >> 2] = i11 & 8372224 | i11 >>> 23 << 6 | 27;
   26496           2 :    i9 = ~i10 + i3 | 0;
   26497           2 :    if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) {
   26498           2 :     i3 = 20;
   26499           2 :     break;
   26500           2 :    }
   26501           2 :    i9 = HEAP32[i7 >> 2] & 16383 | (i9 << 14) + 2147467264;
   26502           2 :   } else {
   26503           2 :    i10 = ~i10 + i3 | 0;
   26504           2 :    if ((((i10 | 0) > -1 ? i10 : 0 - i10 | 0) | 0) > 131071) {
   26505           2 :     i3 = 23;
   26506           2 :     break;
   26507           2 :    }
   26508           2 :    i9 = i9 & 16383 | (i10 << 14) + 2147467264;
   26509           2 :   }
   26510           2 :   HEAP32[i7 >> 2] = i9;
   26511           2 :   if ((i8 | 0) == -1) {
   26512           2 :    i3 = 26;
   26513           2 :    break;
   26514           2 :   } else {
   26515           2 :    i10 = i8;
   26516           2 :   }
   26517           2 :  }
   26518           2 :  if ((i3 | 0) == 20) {
   26519           2 :   _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624);
   26520           2 :  } else if ((i3 | 0) == 23) {
   26521           2 :   _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624);
   26522           2 :  } else if ((i3 | 0) == 26) {
   26523           2 :   STACKTOP = i1;
   26524           2 :   return;
   26525           2 :  }
   26526           2 : }
   26527           1 : function _luaG_typeerror(i5, i6, i1) {
   26528           0 :  i5 = i5 | 0;
   26529           0 :  i6 = i6 | 0;
   26530           0 :  i1 = i1 | 0;
   26531           0 :  var i2 = 0, i3 = 0, i4 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
   26532           0 :  i2 = STACKTOP;
   26533           0 :  STACKTOP = STACKTOP + 32 | 0;
   26534           0 :  i3 = i2;
   26535           0 :  i2 = i2 + 16 | 0;
   26536           0 :  i8 = HEAP32[i5 + 16 >> 2] | 0;
   26537           0 :  HEAP32[i2 >> 2] = 0;
   26538           0 :  i4 = HEAP32[8528 + ((HEAP32[i6 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0;
   26539           0 :  L1 : do {
   26540           0 :   if (!((HEAP8[i8 + 18 | 0] & 1) == 0)) {
   26541           0 :    i7 = HEAP32[HEAP32[i8 >> 2] >> 2] | 0;
   26542           0 :    i10 = HEAP8[i7 + 6 | 0] | 0;
   26543           0 :    L3 : do {
   26544           0 :     if (!(i10 << 24 >> 24 == 0)) {
   26545           0 :      i9 = i7 + 16 | 0;
   26546           0 :      i11 = i10 & 255;
   26547           0 :      i10 = 0;
   26548           0 :      while (1) {
   26549           0 :       i12 = i10 + 1 | 0;
   26550           0 :       if ((HEAP32[(HEAP32[i9 + (i10 << 2) >> 2] | 0) + 8 >> 2] | 0) == (i6 | 0)) {
   26551           0 :        break;
   26552           0 :       }
   26553           0 :       if ((i12 | 0) < (i11 | 0)) {
   26554           0 :        i10 = i12;
   26555           0 :       } else {
   26556           0 :        break L3;
   26557           0 :       }
   26558           0 :      }
   26559           0 :      i9 = HEAP32[(HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 28 >> 2] | 0) + (i10 << 3) >> 2] | 0;
   26560           0 :      if ((i9 | 0) == 0) {
   26561           0 :       i9 = 2104;
   26562           0 :      } else {
   26563           0 :       i9 = i9 + 16 | 0;
   26564           0 :      }
   26565           0 :      HEAP32[i2 >> 2] = i9;
   26566           0 :      i11 = i9;
   26567           0 :      i10 = 2072;
   26568           0 :      HEAP32[i3 >> 2] = i1;
   26569           0 :      i12 = i3 + 4 | 0;
   26570           0 :      HEAP32[i12 >> 2] = i10;
   26571           0 :      i12 = i3 + 8 | 0;
   26572           0 :      HEAP32[i12 >> 2] = i11;
   26573           0 :      i12 = i3 + 12 | 0;
   26574           0 :      HEAP32[i12 >> 2] = i4;
   26575           0 :      _luaG_runerror(i5, 1840, i3);
   26576           0 :     }
   26577           0 :    } while (0);
   26578           0 :    i9 = HEAP32[i8 + 24 >> 2] | 0;
   26579           0 :    i10 = HEAP32[i8 + 4 >> 2] | 0;
   26580           0 :    if (i9 >>> 0 < i10 >>> 0) {
   26581           0 :     i12 = i9;
   26582           0 :     while (1) {
   26583           0 :      i11 = i12 + 16 | 0;
   26584           0 :      if ((i12 | 0) == (i6 | 0)) {
   26585           0 :       break;
   26586           0 :      }
   26587           0 :      if (i11 >>> 0 < i10 >>> 0) {
   26588           0 :       i12 = i11;
   26589           0 :      } else {
   26590           0 :       break L1;
   26591           0 :      }
   26592           0 :     }
   26593           0 :     i12 = HEAP32[i7 + 12 >> 2] | 0;
   26594           0 :     i6 = _getobjname(i12, ((HEAP32[i8 + 28 >> 2] | 0) - (HEAP32[i12 + 12 >> 2] | 0) >> 2) + -1 | 0, i6 - i9 >> 4, i2) | 0;
   26595           0 :     if ((i6 | 0) != 0) {
   26596           0 :      i11 = HEAP32[i2 >> 2] | 0;
   26597           0 :      i10 = i6;
   26598           0 :      HEAP32[i3 >> 2] = i1;
   26599           0 :      i12 = i3 + 4 | 0;
   26600           0 :      HEAP32[i12 >> 2] = i10;
   26601           0 :      i12 = i3 + 8 | 0;
   26602           0 :      HEAP32[i12 >> 2] = i11;
   26603           0 :      i12 = i3 + 12 | 0;
   26604           0 :      HEAP32[i12 >> 2] = i4;
   26605           0 :      _luaG_runerror(i5, 1840, i3);
   26606           0 :     }
   26607           0 :    }
   26608           0 :   }
   26609           0 :  } while (0);
   26610           0 :  HEAP32[i3 >> 2] = i1;
   26611           0 :  HEAP32[i3 + 4 >> 2] = i4;
   26612           0 :  _luaG_runerror(i5, 1880, i3);
   26613           1 : }
   26614           5 : function _lua_setmetatable(i1, i7) {
   26615           5 :  i1 = i1 | 0;
   26616           5 :  i7 = i7 | 0;
   26617           5 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0;
   26618           5 :  i4 = STACKTOP;
   26619           5 :  i6 = HEAP32[i1 + 16 >> 2] | 0;
   26620           5 :  do {
   26621           5 :   if ((i7 | 0) <= 0) {
   26622           5 :    if (!((i7 | 0) < -1000999)) {
   26623           5 :     i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i7 << 4) | 0;
   26624           5 :     break;
   26625           5 :    }
   26626           5 :    if ((i7 | 0) == -1001e3) {
   26627           5 :     i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   26628           5 :     break;
   26629           5 :    }
   26630           5 :    i7 = -1001e3 - i7 | 0;
   26631           5 :    i6 = HEAP32[i6 >> 2] | 0;
   26632           5 :    if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i7 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
   26633           5 :     i5 = i5 + (i7 + -1 << 4) + 16 | 0;
   26634           5 :    } else {
   26635           5 :     i5 = 5192;
   26636           5 :    }
   26637           5 :   } else {
   26638           5 :    i5 = (HEAP32[i6 >> 2] | 0) + (i7 << 4) | 0;
   26639           5 :    i5 = i5 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
   26640           5 :   }
   26641           5 :  } while (0);
   26642           5 :  i6 = i1 + 8 | 0;
   26643           5 :  i7 = HEAP32[i6 >> 2] | 0;
   26644           5 :  if ((HEAP32[i7 + -8 >> 2] | 0) == 0) {
   26645           5 :   i7 = 0;
   26646           5 :  } else {
   26647           5 :   i7 = HEAP32[i7 + -16 >> 2] | 0;
   26648           5 :  }
   26649           5 :  i8 = HEAP32[i5 + 8 >> 2] & 15;
   26650           5 :  if ((i8 | 0) == 5) {
   26651           5 :   HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i7;
   26652           5 :   if ((i7 | 0) == 0) {
   26653           5 :    i8 = HEAP32[i6 >> 2] | 0;
   26654           5 :    i8 = i8 + -16 | 0;
   26655           5 :    HEAP32[i6 >> 2] = i8;
   26656           5 :    STACKTOP = i4;
   26657           5 :    return 1;
   26658           5 :   }
   26659           5 :   if (!((HEAP8[i7 + 5 | 0] & 3) == 0) ? (i2 = HEAP32[i5 >> 2] | 0, !((HEAP8[i2 + 5 | 0] & 4) == 0)) : 0) {
   26660           5 :    _luaC_barrierback_(i1, i2);
   26661           5 :   }
   26662           5 :   _luaC_checkfinalizer(i1, HEAP32[i5 >> 2] | 0, i7);
   26663           5 :   i8 = HEAP32[i6 >> 2] | 0;
   26664           5 :   i8 = i8 + -16 | 0;
   26665           5 :   HEAP32[i6 >> 2] = i8;
   26666           5 :   STACKTOP = i4;
   26667           5 :   return 1;
   26668           5 :  } else if ((i8 | 0) == 7) {
   26669           5 :   HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i7;
   26670           5 :   if ((i7 | 0) == 0) {
   26671           5 :    i8 = HEAP32[i6 >> 2] | 0;
   26672           5 :    i8 = i8 + -16 | 0;
   26673           5 :    HEAP32[i6 >> 2] = i8;
   26674           5 :    STACKTOP = i4;
   26675           5 :    return 1;
   26676           5 :   }
   26677           5 :   if (!((HEAP8[i7 + 5 | 0] & 3) == 0) ? (i3 = HEAP32[i5 >> 2] | 0, !((HEAP8[i3 + 5 | 0] & 4) == 0)) : 0) {
   26678           5 :    _luaC_barrier_(i1, i3, i7);
   26679           5 :   }
   26680           5 :   _luaC_checkfinalizer(i1, HEAP32[i5 >> 2] | 0, i7);
   26681           5 :   i8 = HEAP32[i6 >> 2] | 0;
   26682           5 :   i8 = i8 + -16 | 0;
   26683           5 :   HEAP32[i6 >> 2] = i8;
   26684           5 :   STACKTOP = i4;
   26685           5 :   return 1;
   26686           5 :  } else {
   26687           5 :   HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i8 << 2) + 252 >> 2] = i7;
   26688           5 :   i8 = HEAP32[i6 >> 2] | 0;
   26689           5 :   i8 = i8 + -16 | 0;
   26690           5 :   HEAP32[i6 >> 2] = i8;
   26691           5 :   STACKTOP = i4;
   26692           5 :   return 1;
   26693           5 :  }
   26694           5 :  return 0;
   26695           5 : }
   26696           1 : function _recfield(i2, i10) {
   26697           0 :  i2 = i2 | 0;
   26698           0 :  i10 = i10 | 0;
   26699           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
   26700           0 :  i1 = STACKTOP;
   26701           0 :  STACKTOP = STACKTOP + 64 | 0;
   26702           0 :  i9 = i1 + 48 | 0;
   26703           0 :  i6 = i1 + 24 | 0;
   26704           0 :  i3 = i1;
   26705           0 :  i13 = i2 + 48 | 0;
   26706           0 :  i8 = HEAP32[i13 >> 2] | 0;
   26707           0 :  i5 = i8 + 48 | 0;
   26708           0 :  i4 = HEAP8[i5] | 0;
   26709           0 :  i7 = i2 + 16 | 0;
   26710           0 :  do {
   26711           0 :   if ((HEAP32[i7 >> 2] | 0) != 288) {
   26712           0 :    _luaX_next(i2);
   26713           0 :    _subexpr(i2, i6, 0) | 0;
   26714           0 :    _luaK_exp2val(HEAP32[i13 >> 2] | 0, i6);
   26715           0 :    if ((HEAP32[i7 >> 2] | 0) == 93) {
   26716           0 :     _luaX_next(i2);
   26717           0 :     i11 = i10 + 28 | 0;
   26718           0 :     break;
   26719           0 :    } else {
   26720           0 :     _error_expected(i2, 93);
   26721           0 :    }
   26722           0 :   } else {
   26723           0 :    i12 = i10 + 28 | 0;
   26724           0 :    if ((HEAP32[i12 >> 2] | 0) <= 2147483645) {
   26725           0 :     i11 = HEAP32[i2 + 24 >> 2] | 0;
   26726           0 :     _luaX_next(i2);
   26727           0 :     i11 = _luaK_stringK(HEAP32[i13 >> 2] | 0, i11) | 0;
   26728           0 :     HEAP32[i6 + 16 >> 2] = -1;
   26729           0 :     HEAP32[i6 + 20 >> 2] = -1;
   26730           0 :     HEAP32[i6 >> 2] = 4;
   26731           0 :     HEAP32[i6 + 8 >> 2] = i11;
   26732           0 :     i11 = i12;
   26733           0 :     break;
   26734           0 :    }
   26735           0 :    i14 = i8 + 12 | 0;
   26736           0 :    i13 = HEAP32[(HEAP32[i14 >> 2] | 0) + 52 >> 2] | 0;
   26737           0 :    i12 = HEAP32[(HEAP32[i8 >> 2] | 0) + 64 >> 2] | 0;
   26738           0 :    if ((i12 | 0) == 0) {
   26739           0 :     i16 = 6552;
   26740           0 :     HEAP32[i9 >> 2] = 6528;
   26741           0 :     i15 = i9 + 4 | 0;
   26742           0 :     HEAP32[i15 >> 2] = 2147483645;
   26743           0 :     i15 = i9 + 8 | 0;
   26744           0 :     HEAP32[i15 >> 2] = i16;
   26745           0 :     i15 = _luaO_pushfstring(i13, 6592, i9) | 0;
   26746           0 :     i16 = HEAP32[i14 >> 2] | 0;
   26747           0 :     _luaX_syntaxerror(i16, i15);
   26748           0 :    }
   26749           0 :    HEAP32[i9 >> 2] = i12;
   26750           0 :    i15 = _luaO_pushfstring(i13, 6568, i9) | 0;
   26751           0 :    HEAP32[i9 >> 2] = 6528;
   26752           0 :    i16 = i9 + 4 | 0;
   26753           0 :    HEAP32[i16 >> 2] = 2147483645;
   26754           0 :    i16 = i9 + 8 | 0;
   26755           0 :    HEAP32[i16 >> 2] = i15;
   26756           0 :    i16 = _luaO_pushfstring(i13, 6592, i9) | 0;
   26757           0 :    i15 = HEAP32[i14 >> 2] | 0;
   26758           0 :    _luaX_syntaxerror(i15, i16);
   26759           0 :   }
   26760           0 :  } while (0);
   26761           0 :  HEAP32[i11 >> 2] = (HEAP32[i11 >> 2] | 0) + 1;
   26762           0 :  if ((HEAP32[i7 >> 2] | 0) == 61) {
   26763           0 :   _luaX_next(i2);
   26764           0 :   i16 = _luaK_exp2RK(i8, i6) | 0;
   26765           0 :   _subexpr(i2, i3, 0) | 0;
   26766           0 :   i15 = HEAP32[(HEAP32[i10 + 24 >> 2] | 0) + 8 >> 2] | 0;
   26767           0 :   _luaK_codeABC(i8, 10, i15, i16, _luaK_exp2RK(i8, i3) | 0) | 0;
   26768           0 :   HEAP8[i5] = i4;
   26769           0 :   STACKTOP = i1;
   26770           0 :   return;
   26771           0 :  } else {
   26772           0 :   _error_expected(i2, 61);
   26773           0 :  }
   26774           1 : }
   26775           1 : function _lua_newstate(i3, i6) {
   26776           1 :  i3 = i3 | 0;
   26777           1 :  i6 = i6 | 0;
   26778           1 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0;
   26779           1 :  i1 = STACKTOP;
   26780           1 :  STACKTOP = STACKTOP + 32 | 0;
   26781           1 :  i5 = i1 + 8 | 0;
   26782           1 :  i4 = i1;
   26783           1 :  i2 = FUNCTION_TABLE_iiiii[i3 & 3](i6, 0, 8, 400) | 0;
   26784           1 :  if ((i2 | 0) == 0) {
   26785           1 :   i6 = 0;
   26786           1 :   STACKTOP = i1;
   26787           1 :   return i6 | 0;
   26788           1 :  }
   26789           1 :  i7 = i2 + 112 | 0;
   26790           1 :  HEAP32[i2 >> 2] = 0;
   26791           1 :  HEAP8[i2 + 4 | 0] = 8;
   26792           1 :  HEAP8[i2 + 172 | 0] = 33;
   26793           1 :  HEAP8[i2 + 5 | 0] = 1;
   26794           1 :  HEAP8[i2 + 174 | 0] = 0;
   26795           1 :  HEAP32[i2 + 12 >> 2] = i7;
   26796           1 :  HEAP32[i2 + 28 >> 2] = 0;
   26797           1 :  HEAP32[i2 + 16 >> 2] = 0;
   26798           1 :  HEAP32[i2 + 32 >> 2] = 0;
   26799           1 :  HEAP32[i2 + 64 >> 2] = 0;
   26800           1 :  HEAP16[i2 + 38 >> 1] = 0;
   26801           1 :  HEAP32[i2 + 52 >> 2] = 0;
   26802           1 :  HEAP8[i2 + 40 | 0] = 0;
   26803           1 :  HEAP32[i2 + 44 >> 2] = 0;
   26804           1 :  HEAP8[i2 + 41 | 0] = 1;
   26805           1 :  HEAP32[i2 + 48 >> 2] = 0;
   26806           1 :  HEAP32[i2 + 56 >> 2] = 0;
   26807           1 :  HEAP16[i2 + 36 >> 1] = 1;
   26808           1 :  HEAP8[i2 + 6 | 0] = 0;
   26809           1 :  HEAP32[i2 + 68 >> 2] = 0;
   26810           1 :  HEAP32[i7 >> 2] = i3;
   26811           1 :  HEAP32[i2 + 116 >> 2] = i6;
   26812           1 :  HEAP32[i2 + 284 >> 2] = i2;
   26813           1 :  i3 = _time(0) | 0;
   26814           1 :  HEAP32[i4 >> 2] = i3;
   26815           1 :  HEAP32[i5 >> 2] = i2;
   26816           1 :  HEAP32[i5 + 4 >> 2] = i4;
   26817           1 :  HEAP32[i5 + 8 >> 2] = 5192;
   26818           1 :  HEAP32[i5 + 12 >> 2] = 1;
   26819           1 :  HEAP32[i2 + 168 >> 2] = _luaS_hash(i5, 16, i3) | 0;
   26820           1 :  i4 = i2 + 224 | 0;
   26821           1 :  HEAP32[i2 + 240 >> 2] = i4;
   26822           1 :  HEAP32[i2 + 244 >> 2] = i4;
   26823           1 :  HEAP8[i2 + 175 | 0] = 0;
   26824           1 :  i4 = i2 + 132 | 0;
   26825           1 :  HEAP32[i2 + 160 >> 2] = 0;
   26826           1 :  HEAP32[i2 + 256 >> 2] = 0;
   26827           1 :  HEAP32[i2 + 264 >> 2] = 0;
   26828           1 :  HEAP32[i2 + 280 >> 2] = 0;
   26829           1 :  HEAP32[i4 + 0 >> 2] = 0;
   26830           1 :  HEAP32[i4 + 4 >> 2] = 0;
   26831           1 :  HEAP32[i4 + 8 >> 2] = 0;
   26832           1 :  HEAP32[i4 + 12 >> 2] = 0;
   26833           1 :  HEAP32[i2 + 288 >> 2] = _lua_version(0) | 0;
   26834           1 :  HEAP8[i2 + 173 | 0] = 5;
   26835           1 :  i4 = i2 + 120 | 0;
   26836           1 :  i5 = i2 + 180 | 0;
   26837           1 :  i3 = i5 + 40 | 0;
   26838           1 :  do {
   26839           1 :   HEAP32[i5 >> 2] = 0;
   26840           1 :   i5 = i5 + 4 | 0;
   26841           1 :  } while ((i5 | 0) < (i3 | 0));
   26842           1 :  HEAP32[i4 >> 2] = 400;
   26843           1 :  HEAP32[i2 + 124 >> 2] = 0;
   26844           1 :  HEAP32[i2 + 268 >> 2] = 200;
   26845           1 :  HEAP32[i2 + 272 >> 2] = 200;
   26846           1 :  HEAP32[i2 + 276 >> 2] = 200;
   26847           1 :  i5 = i2 + 364 | 0;
   26848           1 :  i3 = i5 + 36 | 0;
   26849           1 :  do {
   26850           1 :   HEAP32[i5 >> 2] = 0;
   26851           1 :   i5 = i5 + 4 | 0;
   26852           1 :  } while ((i5 | 0) < (i3 | 0));
   26853           1 :  if ((_luaD_rawrunprotected(i2, 8, 0) | 0) == 0) {
   26854           1 :   i7 = i2;
   26855           1 :   STACKTOP = i1;
   26856           1 :   return i7 | 0;
   26857           1 :  }
   26858           1 :  _close_state(i2);
   26859           1 :  i7 = 0;
   26860           1 :  STACKTOP = i1;
   26861           1 :  return i7 | 0;
   26862           1 : }
   26863           1 : function _luaU_undump(i1, i7, i8, i9) {
   26864           0 :  i1 = i1 | 0;
   26865           0 :  i7 = i7 | 0;
   26866           0 :  i8 = i8 | 0;
   26867           0 :  i9 = i9 | 0;
   26868           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   26869           0 :  i2 = STACKTOP;
   26870           0 :  STACKTOP = STACKTOP + 64 | 0;
   26871           0 :  i4 = i2 + 16 | 0;
   26872           0 :  i5 = i2 + 34 | 0;
   26873           0 :  i3 = i2;
   26874           0 :  i6 = HEAP8[i9] | 0;
   26875           0 :  if (i6 << 24 >> 24 == 27) {
   26876           0 :   HEAP32[i3 + 12 >> 2] = 8800;
   26877           0 :  } else if (i6 << 24 >> 24 == 61 | i6 << 24 >> 24 == 64) {
   26878           0 :   HEAP32[i3 + 12 >> 2] = i9 + 1;
   26879           0 :  } else {
   26880           0 :   HEAP32[i3 + 12 >> 2] = i9;
   26881           0 :  }
   26882           0 :  HEAP32[i3 >> 2] = i1;
   26883           0 :  HEAP32[i3 + 4 >> 2] = i7;
   26884           0 :  HEAP32[i3 + 8 >> 2] = i8;
   26885           0 :  HEAP32[i4 >> 2] = 1635077147;
   26886           0 :  HEAP8[i4 + 4 | 0] = 82;
   26887           0 :  HEAP8[i4 + 5 | 0] = 0;
   26888           0 :  HEAP8[i4 + 6 | 0] = 1;
   26889           0 :  HEAP8[i4 + 7 | 0] = 4;
   26890           0 :  HEAP8[i4 + 8 | 0] = 4;
   26891           0 :  HEAP8[i4 + 9 | 0] = 4;
   26892           0 :  HEAP8[i4 + 10 | 0] = 8;
   26893           0 :  i9 = i4 + 12 | 0;
   26894           0 :  HEAP8[i4 + 11 | 0] = 0;
   26895           0 :  HEAP8[i9 + 0 | 0] = HEAP8[8816 | 0] | 0;
   26896           0 :  HEAP8[i9 + 1 | 0] = HEAP8[8817 | 0] | 0;
   26897           0 :  HEAP8[i9 + 2 | 0] = HEAP8[8818 | 0] | 0;
   26898           0 :  HEAP8[i9 + 3 | 0] = HEAP8[8819 | 0] | 0;
   26899           0 :  HEAP8[i9 + 4 | 0] = HEAP8[8820 | 0] | 0;
   26900           0 :  HEAP8[i9 + 5 | 0] = HEAP8[8821 | 0] | 0;
   26901           0 :  HEAP8[i5] = 27;
   26902           0 :  if ((_luaZ_read(i7, i5 + 1 | 0, 17) | 0) != 0) {
   26903           0 :   _error(i3, 8824);
   26904           0 :  }
   26905           0 :  if ((_memcmp(i4, i5, 18) | 0) == 0) {
   26906           0 :   i4 = _luaF_newLclosure(i1, 1) | 0;
   26907           0 :   i5 = i1 + 8 | 0;
   26908           0 :   i9 = HEAP32[i5 >> 2] | 0;
   26909           0 :   HEAP32[i9 >> 2] = i4;
   26910           0 :   HEAP32[i9 + 8 >> 2] = 70;
   26911           0 :   i9 = (HEAP32[i5 >> 2] | 0) + 16 | 0;
   26912           0 :   HEAP32[i5 >> 2] = i9;
   26913           0 :   if (((HEAP32[i1 + 24 >> 2] | 0) - i9 | 0) < 16) {
   26914           0 :    _luaD_growstack(i1, 0);
   26915           0 :   }
   26916           0 :   i9 = _luaF_newproto(i1) | 0;
   26917           0 :   i6 = i4 + 12 | 0;
   26918           0 :   HEAP32[i6 >> 2] = i9;
   26919           0 :   _LoadFunction(i3, i9);
   26920           0 :   i6 = HEAP32[i6 >> 2] | 0;
   26921           0 :   i3 = HEAP32[i6 + 40 >> 2] | 0;
   26922           0 :   if ((i3 | 0) == 1) {
   26923           0 :    i9 = i4;
   26924           0 :    STACKTOP = i2;
   26925           0 :    return i9 | 0;
   26926           0 :   }
   26927           0 :   i9 = _luaF_newLclosure(i1, i3) | 0;
   26928           0 :   HEAP32[i9 + 12 >> 2] = i6;
   26929           0 :   i8 = HEAP32[i5 >> 2] | 0;
   26930           0 :   HEAP32[i8 + -16 >> 2] = i9;
   26931           0 :   HEAP32[i8 + -8 >> 2] = 70;
   26932           0 :   STACKTOP = i2;
   26933           0 :   return i9 | 0;
   26934           0 :  }
   26935           0 :  if ((_memcmp(i4, i5, 4) | 0) != 0) {
   26936           0 :   _error(i3, 8888);
   26937           0 :  }
   26938           0 :  if ((_memcmp(i4, i5, 6) | 0) != 0) {
   26939           0 :   _error(i3, 8896);
   26940           0 :  }
   26941           0 :  if ((_memcmp(i4, i5, 12) | 0) == 0) {
   26942           0 :   _error(i3, 8872);
   26943           0 :  } else {
   26944           0 :   _error(i3, 8920);
   26945           0 :  }
   26946           0 :  return 0;
   26947           1 : }
   26948           1 : function _lua_compare(i2, i7, i5, i3) {
   26949           0 :  i2 = i2 | 0;
   26950           0 :  i7 = i7 | 0;
   26951           0 :  i5 = i5 | 0;
   26952           0 :  i3 = i3 | 0;
   26953           0 :  var i1 = 0, i4 = 0, i6 = 0, i8 = 0;
   26954           0 :  i1 = STACKTOP;
   26955           0 :  i4 = HEAP32[i2 + 16 >> 2] | 0;
   26956           0 :  do {
   26957           0 :   if ((i7 | 0) <= 0) {
   26958           0 :    if (!((i7 | 0) < -1000999)) {
   26959           0 :     i6 = (HEAP32[i2 + 8 >> 2] | 0) + (i7 << 4) | 0;
   26960           0 :     break;
   26961           0 :    }
   26962           0 :    if ((i7 | 0) == -1001e3) {
   26963           0 :     i6 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   26964           0 :     break;
   26965           0 :    }
   26966           0 :    i7 = -1001e3 - i7 | 0;
   26967           0 :    i8 = HEAP32[i4 >> 2] | 0;
   26968           0 :    if ((HEAP32[i8 + 8 >> 2] | 0) != 22 ? (i6 = HEAP32[i8 >> 2] | 0, (i7 | 0) <= (HEAPU8[i6 + 6 | 0] | 0 | 0)) : 0) {
   26969           0 :     i6 = i6 + (i7 + -1 << 4) + 16 | 0;
   26970           0 :    } else {
   26971           0 :     i6 = 5192;
   26972           0 :    }
   26973           0 :   } else {
   26974           0 :    i6 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0;
   26975           0 :    i6 = i6 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i6 : 5192;
   26976           0 :   }
   26977           0 :  } while (0);
   26978           0 :  do {
   26979           0 :   if ((i5 | 0) <= 0) {
   26980           0 :    if (!((i5 | 0) < -1000999)) {
   26981           0 :     i4 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0;
   26982           0 :     break;
   26983           0 :    }
   26984           0 :    if ((i5 | 0) == -1001e3) {
   26985           0 :     i4 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   26986           0 :     break;
   26987           0 :    }
   26988           0 :    i5 = -1001e3 - i5 | 0;
   26989           0 :    i4 = HEAP32[i4 >> 2] | 0;
   26990           0 :    if ((HEAP32[i4 + 8 >> 2] | 0) == 22) {
   26991           0 :     i8 = 0;
   26992           0 :     STACKTOP = i1;
   26993           0 :     return i8 | 0;
   26994           0 :    }
   26995           0 :    i4 = HEAP32[i4 >> 2] | 0;
   26996           0 :    if ((i5 | 0) > (HEAPU8[i4 + 6 | 0] | 0 | 0)) {
   26997           0 :     i8 = 0;
   26998           0 :     STACKTOP = i1;
   26999           0 :     return i8 | 0;
   27000           0 :    } else {
   27001           0 :     i4 = i4 + (i5 + -1 << 4) + 16 | 0;
   27002           0 :     break;
   27003           0 :    }
   27004           0 :   } else {
   27005           0 :    i4 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   27006           0 :    i4 = i4 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   27007           0 :   }
   27008           0 :  } while (0);
   27009           0 :  if ((i6 | 0) == 5192 | (i4 | 0) == 5192) {
   27010           0 :   i8 = 0;
   27011           0 :   STACKTOP = i1;
   27012           0 :   return i8 | 0;
   27013           0 :  }
   27014           0 :  if ((i3 | 0) == 1) {
   27015           0 :   i8 = _luaV_lessthan(i2, i6, i4) | 0;
   27016           0 :   STACKTOP = i1;
   27017           0 :   return i8 | 0;
   27018           0 :  } else if ((i3 | 0) == 2) {
   27019           0 :   i8 = _luaV_lessequal(i2, i6, i4) | 0;
   27020           0 :   STACKTOP = i1;
   27021           0 :   return i8 | 0;
   27022           0 :  } else if ((i3 | 0) == 0) {
   27023           0 :   if ((HEAP32[i6 + 8 >> 2] | 0) == (HEAP32[i4 + 8 >> 2] | 0)) {
   27024           0 :    i2 = (_luaV_equalobj_(i2, i6, i4) | 0) != 0;
   27025           0 :   } else {
   27026           0 :    i2 = 0;
   27027           0 :   }
   27028           0 :   i8 = i2 & 1;
   27029           0 :   STACKTOP = i1;
   27030           0 :   return i8 | 0;
   27031           0 :  } else {
   27032           0 :   i8 = 0;
   27033           0 :   STACKTOP = i1;
   27034           0 :   return i8 | 0;
   27035           0 :  }
   27036           0 :  return 0;
   27037           1 : }
   27038           1 : function _lexerror(i7, i3, i8) {
   27039           0 :  i7 = i7 | 0;
   27040           0 :  i3 = i3 | 0;
   27041           0 :  i8 = i8 | 0;
   27042           0 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   27043           0 :  i12 = STACKTOP;
   27044           0 :  STACKTOP = STACKTOP + 80 | 0;
   27045           0 :  i2 = i12;
   27046           0 :  i12 = i12 + 12 | 0;
   27047           0 :  _luaO_chunkid(i12, (HEAP32[i7 + 68 >> 2] | 0) + 16 | 0, 60);
   27048           0 :  i1 = i7 + 52 | 0;
   27049           0 :  i4 = HEAP32[i1 >> 2] | 0;
   27050           0 :  i13 = HEAP32[i7 + 4 >> 2] | 0;
   27051           0 :  HEAP32[i2 >> 2] = i12;
   27052           0 :  HEAP32[i2 + 4 >> 2] = i13;
   27053           0 :  HEAP32[i2 + 8 >> 2] = i3;
   27054           0 :  i4 = _luaO_pushfstring(i4, 12592, i2) | 0;
   27055           0 :  if ((i8 | 0) == 0) {
   27056           0 :   i13 = HEAP32[i1 >> 2] | 0;
   27057           0 :   _luaD_throw(i13, 3);
   27058           0 :  }
   27059           0 :  i3 = HEAP32[i1 >> 2] | 0;
   27060           0 :  do {
   27061           0 :   if (!((i8 + -287 | 0) >>> 0 < 3)) {
   27062           0 :    if ((i8 | 0) >= 257) {
   27063           0 :     i5 = HEAP32[12096 + (i8 + -257 << 2) >> 2] | 0;
   27064           0 :     if ((i8 | 0) >= 286) {
   27065           0 :      break;
   27066           0 :     }
   27067           0 :     HEAP32[i2 >> 2] = i5;
   27068           0 :     i5 = _luaO_pushfstring(i3, 12256, i2) | 0;
   27069           0 :     break;
   27070           0 :    }
   27071           0 :    if ((HEAP8[i8 + 10913 | 0] & 4) == 0) {
   27072           0 :     HEAP32[i2 >> 2] = i8;
   27073           0 :     i5 = _luaO_pushfstring(i3, 12240, i2) | 0;
   27074           0 :     break;
   27075           0 :    } else {
   27076           0 :     HEAP32[i2 >> 2] = i8;
   27077           0 :     i5 = _luaO_pushfstring(i3, 12232, i2) | 0;
   27078           0 :     break;
   27079           0 :    }
   27080           0 :   } else {
   27081           0 :    i11 = i7 + 60 | 0;
   27082           0 :    i12 = HEAP32[i11 >> 2] | 0;
   27083           0 :    i10 = i12 + 4 | 0;
   27084           0 :    i13 = HEAP32[i10 >> 2] | 0;
   27085           0 :    i8 = i12 + 8 | 0;
   27086           0 :    i9 = HEAP32[i8 >> 2] | 0;
   27087           0 :    do {
   27088           0 :     if ((i13 + 1 | 0) >>> 0 > i9 >>> 0) {
   27089           0 :      if (i9 >>> 0 > 2147483645) {
   27090           0 :       _lexerror(i7, 12368, 0);
   27091           0 :      }
   27092           0 :      i7 = i9 << 1;
   27093           0 :      if ((i7 | 0) == -2) {
   27094           0 :       _luaM_toobig(i3);
   27095           0 :      } else {
   27096           0 :       i6 = _luaM_realloc_(i3, HEAP32[i12 >> 2] | 0, i9, i7) | 0;
   27097           0 :       HEAP32[i12 >> 2] = i6;
   27098           0 :       HEAP32[i8 >> 2] = i7;
   27099           0 :       i5 = HEAP32[i10 >> 2] | 0;
   27100           0 :       break;
   27101           0 :      }
   27102           0 :     } else {
   27103           0 :      i5 = i13;
   27104           0 :      i6 = HEAP32[i12 >> 2] | 0;
   27105           0 :     }
   27106           0 :    } while (0);
   27107           0 :    HEAP32[i10 >> 2] = i5 + 1;
   27108           0 :    HEAP8[i6 + i5 | 0] = 0;
   27109           0 :    i5 = HEAP32[i1 >> 2] | 0;
   27110           0 :    HEAP32[i2 >> 2] = HEAP32[HEAP32[i11 >> 2] >> 2];
   27111           0 :    i5 = _luaO_pushfstring(i5, 12256, i2) | 0;
   27112           0 :   }
   27113           0 :  } while (0);
   27114           0 :  HEAP32[i2 >> 2] = i4;
   27115           0 :  HEAP32[i2 + 4 >> 2] = i5;
   27116           0 :  _luaO_pushfstring(i3, 12608, i2) | 0;
   27117           0 :  i13 = HEAP32[i1 >> 2] | 0;
   27118           0 :  _luaD_throw(i13, 3);
   27119           1 : }
   27120           1 : function _luaV_objlen(i2, i5, i1) {
   27121           1 :  i2 = i2 | 0;
   27122           1 :  i5 = i5 | 0;
   27123           1 :  i1 = i1 | 0;
   27124           1 :  var i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
   27125           1 :  i3 = STACKTOP;
   27126           1 :  i4 = i1 + 8 | 0;
   27127           1 :  i8 = HEAP32[i4 >> 2] & 15;
   27128           1 :  do {
   27129           1 :   if ((i8 | 0) == 5) {
   27130           1 :    i7 = HEAP32[i1 >> 2] | 0;
   27131           1 :    i8 = HEAP32[i7 + 8 >> 2] | 0;
   27132           1 :    if (((i8 | 0) != 0 ? (HEAP8[i8 + 6 | 0] & 16) == 0 : 0) ? (i6 = _luaT_gettm(i8, 4, HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 200 >> 2] | 0) | 0, (i6 | 0) != 0) : 0) {
   27133           1 :     i7 = i6;
   27134           1 :     break;
   27135           1 :    }
   27136           1 :    HEAPF64[i5 >> 3] = +(_luaH_getn(i7) | 0);
   27137           1 :    HEAP32[i5 + 8 >> 2] = 3;
   27138           1 :    STACKTOP = i3;
   27139           1 :    return;
   27140           1 :   } else if ((i8 | 0) != 4) {
   27141           1 :    i6 = _luaT_gettmbyobj(i2, i1, 4) | 0;
   27142           1 :    if ((HEAP32[i6 + 8 >> 2] | 0) == 0) {
   27143           1 :     _luaG_typeerror(i2, i1, 9024);
   27144           1 :    } else {
   27145           1 :     i7 = i6;
   27146           1 :    }
   27147           1 :   } else {
   27148           1 :    HEAPF64[i5 >> 3] = +((HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) >>> 0);
   27149           1 :    HEAP32[i5 + 8 >> 2] = 3;
   27150           1 :    STACKTOP = i3;
   27151           1 :    return;
   27152           1 :   }
   27153           1 :  } while (0);
   27154           1 :  i6 = i2 + 28 | 0;
   27155           1 :  i8 = i5 - (HEAP32[i6 >> 2] | 0) | 0;
   27156           1 :  i5 = i2 + 8 | 0;
   27157           1 :  i11 = HEAP32[i5 >> 2] | 0;
   27158           1 :  HEAP32[i5 >> 2] = i11 + 16;
   27159           1 :  i12 = i7;
   27160           1 :  i10 = HEAP32[i12 + 4 >> 2] | 0;
   27161           1 :  i9 = i11;
   27162           1 :  HEAP32[i9 >> 2] = HEAP32[i12 >> 2];
   27163           1 :  HEAP32[i9 + 4 >> 2] = i10;
   27164           1 :  HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
   27165           1 :  i7 = HEAP32[i5 >> 2] | 0;
   27166           1 :  HEAP32[i5 >> 2] = i7 + 16;
   27167           1 :  i11 = i1;
   27168           1 :  i9 = HEAP32[i11 + 4 >> 2] | 0;
   27169           1 :  i10 = i7;
   27170           1 :  HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
   27171           1 :  HEAP32[i10 + 4 >> 2] = i9;
   27172           1 :  HEAP32[i7 + 8 >> 2] = HEAP32[i4 >> 2];
   27173           1 :  i7 = HEAP32[i5 >> 2] | 0;
   27174           1 :  HEAP32[i5 >> 2] = i7 + 16;
   27175           1 :  i10 = i1;
   27176           1 :  i9 = HEAP32[i10 + 4 >> 2] | 0;
   27177           1 :  i1 = i7;
   27178           1 :  HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
   27179           1 :  HEAP32[i1 + 4 >> 2] = i9;
   27180           1 :  HEAP32[i7 + 8 >> 2] = HEAP32[i4 >> 2];
   27181           1 :  _luaD_call(i2, (HEAP32[i5 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
   27182           1 :  i7 = HEAP32[i6 >> 2] | 0;
   27183           1 :  i6 = HEAP32[i5 >> 2] | 0;
   27184           1 :  i2 = i6 + -16 | 0;
   27185           1 :  HEAP32[i5 >> 2] = i2;
   27186           1 :  i4 = HEAP32[i2 + 4 >> 2] | 0;
   27187           1 :  i5 = i7 + i8 | 0;
   27188           1 :  HEAP32[i5 >> 2] = HEAP32[i2 >> 2];
   27189           1 :  HEAP32[i5 + 4 >> 2] = i4;
   27190           1 :  HEAP32[i7 + (i8 + 8) >> 2] = HEAP32[i6 + -8 >> 2];
   27191           1 :  STACKTOP = i3;
   27192           1 :  return;
   27193           1 : }
   27194           1 : function _get_equalTM(i6, i5, i4) {
   27195           0 :  i6 = i6 | 0;
   27196           0 :  i5 = i5 | 0;
   27197           0 :  i4 = i4 | 0;
   27198           0 :  var i1 = 0, i2 = 0, i3 = 0, i7 = 0;
   27199           0 :  i1 = STACKTOP;
   27200           0 :  L1 : do {
   27201           0 :   if (((i5 | 0) != 0 ? (HEAP8[i5 + 6 | 0] & 32) == 0 : 0) ? (i7 = i6 + 12 | 0, i2 = _luaT_gettm(i5, 5, HEAP32[(HEAP32[i7 >> 2] | 0) + 204 >> 2] | 0) | 0, (i2 | 0) != 0) : 0) {
   27202           0 :    if ((i5 | 0) != (i4 | 0)) {
   27203           0 :     if (((i4 | 0) != 0 ? (HEAP8[i4 + 6 | 0] & 32) == 0 : 0) ? (i3 = _luaT_gettm(i4, 5, HEAP32[(HEAP32[i7 >> 2] | 0) + 204 >> 2] | 0) | 0, (i3 | 0) != 0) : 0) {
   27204           0 :      i4 = HEAP32[i2 + 8 >> 2] | 0;
   27205           0 :      L9 : do {
   27206           0 :       if ((i4 | 0) == (HEAP32[i3 + 8 >> 2] | 0)) {
   27207           0 :        switch (i4 & 63 | 0) {
   27208           0 :        case 3:
   27209           0 :         {
   27210           0 :          i3 = +HEAPF64[i2 >> 3] == +HEAPF64[i3 >> 3] | 0;
   27211           0 :          break;
   27212           0 :         }
   27213           0 :        case 22:
   27214           0 :         {
   27215           0 :          i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
   27216           0 :          break;
   27217           0 :         }
   27218           0 :        case 5:
   27219           0 :         {
   27220           0 :          if ((HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0)) {
   27221           0 :           break L1;
   27222           0 :          } else {
   27223           0 :           break L9;
   27224           0 :          }
   27225           0 :         }
   27226           0 :        case 1:
   27227           0 :         {
   27228           0 :          i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
   27229           0 :          break;
   27230           0 :         }
   27231           0 :        case 4:
   27232           0 :         {
   27233           0 :          i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
   27234           0 :          break;
   27235           0 :         }
   27236           0 :        case 0:
   27237           0 :         {
   27238           0 :          break L1;
   27239           0 :         }
   27240           0 :        case 7:
   27241           0 :         {
   27242           0 :          if ((HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0)) {
   27243           0 :           break L1;
   27244           0 :          } else {
   27245           0 :           break L9;
   27246           0 :          }
   27247           0 :         }
   27248           0 :        case 2:
   27249           0 :         {
   27250           0 :          i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
   27251           0 :          break;
   27252           0 :         }
   27253           0 :        case 20:
   27254           0 :         {
   27255           0 :          i3 = _luaS_eqlngstr(HEAP32[i2 >> 2] | 0, HEAP32[i3 >> 2] | 0) | 0;
   27256           0 :          break;
   27257           0 :         }
   27258           0 :        default:
   27259           0 :         {
   27260           0 :          i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
   27261           0 :         }
   27262           0 :        }
   27263           0 :        if ((i3 | 0) != 0) {
   27264           0 :         break L1;
   27265           0 :        }
   27266           0 :       }
   27267           0 :      } while (0);
   27268           0 :      i2 = 0;
   27269           0 :     } else {
   27270           0 :      i2 = 0;
   27271           0 :     }
   27272           0 :    }
   27273           0 :   } else {
   27274           0 :    i2 = 0;
   27275           0 :   }
   27276           0 :  } while (0);
   27277           0 :  STACKTOP = i1;
   27278           0 :  return i2 | 0;
   27279           1 : }
   27280         464 : function _luaS_newlstr(i2, i4, i3) {
   27281         464 :  i2 = i2 | 0;
   27282         464 :  i4 = i4 | 0;
   27283         464 :  i3 = i3 | 0;
   27284         464 :  var i1 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
   27285         464 :  i1 = STACKTOP;
   27286         464 :  if (!(i3 >>> 0 < 41)) {
   27287         464 :   if ((i3 + 1 | 0) >>> 0 > 4294967277) {
   27288         464 :    _luaM_toobig(i2);
   27289         464 :   }
   27290         464 :   i10 = HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 56 >> 2] | 0;
   27291         464 :   i11 = _luaC_newobj(i2, 20, i3 + 17 | 0, 0, 0) | 0;
   27292         464 :   HEAP32[i11 + 12 >> 2] = i3;
   27293         464 :   HEAP32[i11 + 8 >> 2] = i10;
   27294         464 :   HEAP8[i11 + 6 | 0] = 0;
   27295         464 :   i10 = i11 + 16 | 0;
   27296         464 :   _memcpy(i10 | 0, i4 | 0, i3 | 0) | 0;
   27297         464 :   HEAP8[i10 + i3 | 0] = 0;
   27298         464 :   STACKTOP = i1;
   27299         464 :   return i11 | 0;
   27300         464 :  }
   27301         464 :  i5 = HEAP32[i2 + 12 >> 2] | 0;
   27302         464 :  i6 = HEAP32[i5 + 56 >> 2] ^ i3;
   27303         464 :  i7 = (i3 >>> 5) + 1 | 0;
   27304         464 :  if (!(i7 >>> 0 > i3 >>> 0)) {
   27305         464 :   i8 = i3;
   27306         464 :   do {
   27307         464 :    i6 = (i6 << 5) + (i6 >>> 2) + (HEAPU8[i4 + (i8 + -1) | 0] | 0) ^ i6;
   27308         464 :    i8 = i8 - i7 | 0;
   27309         464 :   } while (!(i8 >>> 0 < i7 >>> 0));
   27310         464 :  }
   27311         464 :  i10 = i5 + 32 | 0;
   27312         464 :  i9 = HEAP32[i10 >> 2] | 0;
   27313         464 :  i7 = i5 + 24 | 0;
   27314         464 :  i8 = HEAP32[i7 >> 2] | 0;
   27315         464 :  i11 = HEAP32[i8 + ((i9 + -1 & i6) << 2) >> 2] | 0;
   27316         464 :  L12 : do {
   27317         464 :   if ((i11 | 0) != 0) {
   27318         464 :    while (1) {
   27319         464 :     if (((i6 | 0) == (HEAP32[i11 + 8 >> 2] | 0) ? (HEAP32[i11 + 12 >> 2] | 0) == (i3 | 0) : 0) ? (_memcmp(i4, i11 + 16 | 0, i3) | 0) == 0 : 0) {
   27320         464 :      break;
   27321         464 :     }
   27322         464 :     i11 = HEAP32[i11 >> 2] | 0;
   27323         464 :     if ((i11 | 0) == 0) {
   27324         464 :      break L12;
   27325         464 :     }
   27326         464 :    }
   27327         464 :    i2 = i11 + 5 | 0;
   27328         464 :    i3 = (HEAPU8[i2] | 0) ^ 3;
   27329         464 :    if ((((HEAPU8[i5 + 60 | 0] | 0) ^ 3) & i3 | 0) != 0) {
   27330         464 :     STACKTOP = i1;
   27331         464 :     return i11 | 0;
   27332         464 :    }
   27333         464 :    HEAP8[i2] = i3;
   27334         464 :    STACKTOP = i1;
   27335         464 :    return i11 | 0;
   27336         464 :   }
   27337         464 :  } while (0);
   27338         464 :  i5 = i5 + 28 | 0;
   27339         464 :  if ((HEAP32[i5 >> 2] | 0) >>> 0 >= i9 >>> 0 & (i9 | 0) < 1073741823) {
   27340         464 :   _luaS_resize(i2, i9 << 1);
   27341         464 :   i9 = HEAP32[i10 >> 2] | 0;
   27342         464 :   i8 = HEAP32[i7 >> 2] | 0;
   27343         464 :  }
   27344         464 :  i11 = _luaC_newobj(i2, 4, i3 + 17 | 0, i8 + ((i9 + -1 & i6) << 2) | 0, 0) | 0;
   27345         464 :  HEAP32[i11 + 12 >> 2] = i3;
   27346         464 :  HEAP32[i11 + 8 >> 2] = i6;
   27347         464 :  HEAP8[i11 + 6 | 0] = 0;
   27348         464 :  i10 = i11 + 16 | 0;
   27349         464 :  _memcpy(i10 | 0, i4 | 0, i3 | 0) | 0;
   27350         464 :  HEAP8[i10 + i3 | 0] = 0;
   27351         464 :  HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
   27352         464 :  STACKTOP = i1;
   27353         464 :  return i11 | 0;
   27354         464 : }
   27355           2 : function _lua_pcallk(i3, i7, i2, i9, i6, i5) {
   27356           2 :  i3 = i3 | 0;
   27357           2 :  i7 = i7 | 0;
   27358           2 :  i2 = i2 | 0;
   27359           2 :  i9 = i9 | 0;
   27360           2 :  i6 = i6 | 0;
   27361           2 :  i5 = i5 | 0;
   27362           2 :  var i1 = 0, i4 = 0, i8 = 0, i10 = 0, i11 = 0;
   27363           2 :  i1 = STACKTOP;
   27364           2 :  STACKTOP = STACKTOP + 16 | 0;
   27365           2 :  i4 = i1;
   27366           2 :  if ((i9 | 0) == 0) {
   27367           2 :   i9 = 0;
   27368           2 :  } else {
   27369           2 :   i10 = HEAP32[i3 + 16 >> 2] | 0;
   27370           2 :   do {
   27371           2 :    if ((i9 | 0) <= 0) {
   27372           2 :     if (!((i9 | 0) < -1000999)) {
   27373           2 :      i8 = (HEAP32[i3 + 8 >> 2] | 0) + (i9 << 4) | 0;
   27374           2 :      break;
   27375           2 :     }
   27376           2 :     if ((i9 | 0) == -1001e3) {
   27377           2 :      i8 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
   27378           2 :      break;
   27379           2 :     }
   27380           2 :     i9 = -1001e3 - i9 | 0;
   27381           2 :     i10 = HEAP32[i10 >> 2] | 0;
   27382           2 :     if ((HEAP32[i10 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i10 >> 2] | 0, (i9 | 0) <= (HEAPU8[i8 + 6 | 0] | 0)) : 0) {
   27383           2 :      i8 = i8 + (i9 + -1 << 4) + 16 | 0;
   27384           2 :     } else {
   27385           2 :      i8 = 5192;
   27386           2 :     }
   27387           2 :    } else {
   27388           2 :     i8 = (HEAP32[i10 >> 2] | 0) + (i9 << 4) | 0;
   27389           2 :     i8 = i8 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
   27390           2 :    }
   27391           2 :   } while (0);
   27392           2 :   i9 = i8 - (HEAP32[i3 + 28 >> 2] | 0) | 0;
   27393           2 :  }
   27394           2 :  i8 = i3 + 8 | 0;
   27395           2 :  i7 = (HEAP32[i8 >> 2] | 0) + (~i7 << 4) | 0;
   27396           2 :  HEAP32[i4 >> 2] = i7;
   27397           2 :  if ((i5 | 0) != 0 ? (HEAP16[i3 + 36 >> 1] | 0) == 0 : 0) {
   27398           2 :   i11 = HEAP32[i3 + 16 >> 2] | 0;
   27399           2 :   HEAP32[i11 + 28 >> 2] = i5;
   27400           2 :   HEAP32[i11 + 24 >> 2] = i6;
   27401           2 :   HEAP32[i11 + 20 >> 2] = (HEAP32[i4 >> 2] | 0) - (HEAP32[i3 + 28 >> 2] | 0);
   27402           2 :   HEAP8[i11 + 36 | 0] = HEAP8[i3 + 41 | 0] | 0;
   27403           2 :   i10 = i3 + 68 | 0;
   27404           2 :   i7 = i11 + 32 | 0;
   27405           2 :   HEAP32[i7 >> 2] = HEAP32[i10 >> 2];
   27406           2 :   HEAP32[i10 >> 2] = i9;
   27407           2 :   i9 = i11 + 18 | 0;
   27408           2 :   HEAP8[i9] = HEAPU8[i9] | 16;
   27409           2 :   _luaD_call(i3, HEAP32[i4 >> 2] | 0, i2, 1);
   27410           2 :   HEAP8[i9] = HEAP8[i9] & 239;
   27411           2 :   HEAP32[i10 >> 2] = HEAP32[i7 >> 2];
   27412           2 :   i4 = 0;
   27413           2 :  } else {
   27414           2 :   HEAP32[i4 + 4 >> 2] = i2;
   27415           2 :   i4 = _luaD_pcall(i3, 3, i4, i7 - (HEAP32[i3 + 28 >> 2] | 0) | 0, i9) | 0;
   27416           2 :  }
   27417           2 :  if (!((i2 | 0) == -1)) {
   27418           2 :   STACKTOP = i1;
   27419           2 :   return i4 | 0;
   27420           2 :  }
   27421           2 :  i2 = (HEAP32[i3 + 16 >> 2] | 0) + 4 | 0;
   27422           2 :  i3 = HEAP32[i8 >> 2] | 0;
   27423           2 :  if (!((HEAP32[i2 >> 2] | 0) >>> 0 < i3 >>> 0)) {
   27424           2 :   STACKTOP = i1;
   27425           2 :   return i4 | 0;
   27426           2 :  }
   27427           2 :  HEAP32[i2 >> 2] = i3;
   27428           2 :  STACKTOP = i1;
   27429           2 :  return i4 | 0;
   27430           2 : }
   27431           1 : function _lua_getupvalue(i1, i6, i3) {
   27432           0 :  i1 = i1 | 0;
   27433           0 :  i6 = i6 | 0;
   27434           0 :  i3 = i3 | 0;
   27435           0 :  var i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
   27436           0 :  i2 = STACKTOP;
   27437           0 :  i5 = HEAP32[i1 + 16 >> 2] | 0;
   27438           0 :  do {
   27439           0 :   if ((i6 | 0) <= 0) {
   27440           0 :    if (!((i6 | 0) < -1000999)) {
   27441           0 :     i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
   27442           0 :     break;
   27443           0 :    }
   27444           0 :    if ((i6 | 0) == -1001e3) {
   27445           0 :     i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   27446           0 :     break;
   27447           0 :    }
   27448           0 :    i6 = -1001e3 - i6 | 0;
   27449           0 :    i5 = HEAP32[i5 >> 2] | 0;
   27450           0 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   27451           0 :     i4 = i4 + (i6 + -1 << 4) + 16 | 0;
   27452           0 :    } else {
   27453           0 :     i4 = 5192;
   27454           0 :    }
   27455           0 :   } else {
   27456           0 :    i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
   27457           0 :    i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   27458           0 :   }
   27459           0 :  } while (0);
   27460           0 :  i5 = HEAP32[i4 + 8 >> 2] & 63;
   27461           0 :  do {
   27462           0 :   if ((i5 | 0) == 38) {
   27463           0 :    i5 = HEAP32[i4 >> 2] | 0;
   27464           0 :    if ((i3 | 0) <= 0) {
   27465           0 :     i6 = 0;
   27466           0 :     STACKTOP = i2;
   27467           0 :     return i6 | 0;
   27468           0 :    }
   27469           0 :    if ((HEAPU8[i5 + 6 | 0] | 0 | 0) < (i3 | 0)) {
   27470           0 :     i6 = 0;
   27471           0 :     STACKTOP = i2;
   27472           0 :     return i6 | 0;
   27473           0 :    } else {
   27474           0 :     i4 = 936;
   27475           0 :     i3 = i5 + (i3 + -1 << 4) + 16 | 0;
   27476           0 :     break;
   27477           0 :    }
   27478           0 :   } else if ((i5 | 0) == 6) {
   27479           0 :    i5 = HEAP32[i4 >> 2] | 0;
   27480           0 :    i4 = HEAP32[i5 + 12 >> 2] | 0;
   27481           0 :    if ((i3 | 0) <= 0) {
   27482           0 :     i6 = 0;
   27483           0 :     STACKTOP = i2;
   27484           0 :     return i6 | 0;
   27485           0 :    }
   27486           0 :    if ((HEAP32[i4 + 40 >> 2] | 0) < (i3 | 0)) {
   27487           0 :     i6 = 0;
   27488           0 :     STACKTOP = i2;
   27489           0 :     return i6 | 0;
   27490           0 :    }
   27491           0 :    i6 = i3 + -1 | 0;
   27492           0 :    i3 = HEAP32[(HEAP32[i5 + 16 + (i6 << 2) >> 2] | 0) + 8 >> 2] | 0;
   27493           0 :    i4 = HEAP32[(HEAP32[i4 + 28 >> 2] | 0) + (i6 << 3) >> 2] | 0;
   27494           0 :    if ((i4 | 0) == 0) {
   27495           0 :     i4 = 936;
   27496           0 :    } else {
   27497           0 :     i4 = i4 + 16 | 0;
   27498           0 :    }
   27499           0 :   } else {
   27500           0 :    i6 = 0;
   27501           0 :    STACKTOP = i2;
   27502           0 :    return i6 | 0;
   27503           0 :   }
   27504           0 :  } while (0);
   27505           0 :  i6 = i1 + 8 | 0;
   27506           0 :  i5 = HEAP32[i6 >> 2] | 0;
   27507           0 :  i8 = i3;
   27508           0 :  i7 = HEAP32[i8 + 4 >> 2] | 0;
   27509           0 :  i1 = i5;
   27510           0 :  HEAP32[i1 >> 2] = HEAP32[i8 >> 2];
   27511           0 :  HEAP32[i1 + 4 >> 2] = i7;
   27512           0 :  HEAP32[i5 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
   27513           0 :  HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
   27514           0 :  i6 = i4;
   27515           0 :  STACKTOP = i2;
   27516           0 :  return i6 | 0;
   27517           1 : }
   27518           1 : function _lua_copy(i1, i8, i4) {
   27519           0 :  i1 = i1 | 0;
   27520           0 :  i8 = i8 | 0;
   27521           0 :  i4 = i4 | 0;
   27522           0 :  var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0;
   27523           0 :  i2 = STACKTOP;
   27524           0 :  i3 = i1 + 16 | 0;
   27525           0 :  i6 = HEAP32[i3 >> 2] | 0;
   27526           0 :  do {
   27527           0 :   if ((i8 | 0) <= 0) {
   27528           0 :    if (!((i8 | 0) < -1000999)) {
   27529           0 :     i7 = (HEAP32[i1 + 8 >> 2] | 0) + (i8 << 4) | 0;
   27530           0 :     break;
   27531           0 :    }
   27532           0 :    if ((i8 | 0) == -1001e3) {
   27533           0 :     i7 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   27534           0 :     break;
   27535           0 :    }
   27536           0 :    i8 = -1001e3 - i8 | 0;
   27537           0 :    i9 = HEAP32[i6 >> 2] | 0;
   27538           0 :    if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i7 = HEAP32[i9 >> 2] | 0, (i8 | 0) <= (HEAPU8[i7 + 6 | 0] | 0 | 0)) : 0) {
   27539           0 :     i7 = i7 + (i8 + -1 << 4) + 16 | 0;
   27540           0 :    } else {
   27541           0 :     i7 = 5192;
   27542           0 :    }
   27543           0 :   } else {
   27544           0 :    i7 = (HEAP32[i6 >> 2] | 0) + (i8 << 4) | 0;
   27545           0 :    i7 = i7 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i7 : 5192;
   27546           0 :   }
   27547           0 :  } while (0);
   27548           0 :  do {
   27549           0 :   if ((i4 | 0) <= 0) {
   27550           0 :    if (!((i4 | 0) < -1000999)) {
   27551           0 :     i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i4 << 4) | 0;
   27552           0 :     break;
   27553           0 :    }
   27554           0 :    if ((i4 | 0) == -1001e3) {
   27555           0 :     i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   27556           0 :     break;
   27557           0 :    }
   27558           0 :    i8 = -1001e3 - i4 | 0;
   27559           0 :    i6 = HEAP32[i6 >> 2] | 0;
   27560           0 :    if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i8 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
   27561           0 :     i5 = i5 + (i8 + -1 << 4) + 16 | 0;
   27562           0 :    } else {
   27563           0 :     i5 = 5192;
   27564           0 :    }
   27565           0 :   } else {
   27566           0 :    i5 = (HEAP32[i6 >> 2] | 0) + (i4 << 4) | 0;
   27567           0 :    i5 = i5 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
   27568           0 :   }
   27569           0 :  } while (0);
   27570           0 :  i8 = i7;
   27571           0 :  i9 = HEAP32[i8 + 4 >> 2] | 0;
   27572           0 :  i6 = i5;
   27573           0 :  HEAP32[i6 >> 2] = HEAP32[i8 >> 2];
   27574           0 :  HEAP32[i6 + 4 >> 2] = i9;
   27575           0 :  i6 = i7 + 8 | 0;
   27576           0 :  HEAP32[i5 + 8 >> 2] = HEAP32[i6 >> 2];
   27577           0 :  if (!((i4 | 0) < -1001e3)) {
   27578           0 :   STACKTOP = i2;
   27579           0 :   return;
   27580           0 :  }
   27581           0 :  if ((HEAP32[i6 >> 2] & 64 | 0) == 0) {
   27582           0 :   STACKTOP = i2;
   27583           0 :   return;
   27584           0 :  }
   27585           0 :  i4 = HEAP32[i7 >> 2] | 0;
   27586           0 :  if ((HEAP8[i4 + 5 | 0] & 3) == 0) {
   27587           0 :   STACKTOP = i2;
   27588           0 :   return;
   27589           0 :  }
   27590           0 :  i3 = HEAP32[HEAP32[HEAP32[i3 >> 2] >> 2] >> 2] | 0;
   27591           0 :  if ((HEAP8[i3 + 5 | 0] & 4) == 0) {
   27592           0 :   STACKTOP = i2;
   27593           0 :   return;
   27594           0 :  }
   27595           0 :  _luaC_barrier_(i1, i3, i4);
   27596           0 :  STACKTOP = i2;
   27597           0 :  return;
   27598           1 : }
   27599          11 : function _lua_tolstring(i4, i5, i1) {
   27600          11 :  i4 = i4 | 0;
   27601          11 :  i5 = i5 | 0;
   27602          11 :  i1 = i1 | 0;
   27603          11 :  var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   27604          11 :  i2 = STACKTOP;
   27605          11 :  i7 = i4 + 16 | 0;
   27606          11 :  i10 = HEAP32[i7 >> 2] | 0;
   27607          11 :  i6 = (i5 | 0) > 0;
   27608          11 :  do {
   27609          11 :   if (!i6) {
   27610          11 :    if (!((i5 | 0) < -1000999)) {
   27611          11 :     i8 = (HEAP32[i4 + 8 >> 2] | 0) + (i5 << 4) | 0;
   27612          11 :     break;
   27613          11 :    }
   27614          11 :    if ((i5 | 0) == -1001e3) {
   27615          11 :     i8 = (HEAP32[i4 + 12 >> 2] | 0) + 40 | 0;
   27616          11 :     break;
   27617          11 :    }
   27618          11 :    i9 = -1001e3 - i5 | 0;
   27619          11 :    i10 = HEAP32[i10 >> 2] | 0;
   27620          11 :    if ((HEAP32[i10 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i10 >> 2] | 0, (i9 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) {
   27621          11 :     i8 = i8 + (i9 + -1 << 4) + 16 | 0;
   27622          11 :    } else {
   27623          11 :     i8 = 5192;
   27624          11 :    }
   27625          11 :   } else {
   27626          11 :    i8 = (HEAP32[i10 >> 2] | 0) + (i5 << 4) | 0;
   27627          11 :    i8 = i8 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
   27628          11 :   }
   27629          11 :  } while (0);
   27630          11 :  do {
   27631          11 :   if ((HEAP32[i8 + 8 >> 2] & 15 | 0) != 4) {
   27632          11 :    if ((_luaV_tostring(i4, i8) | 0) == 0) {
   27633          11 :     if ((i1 | 0) == 0) {
   27634          11 :      i10 = 0;
   27635          11 :      STACKTOP = i2;
   27636          11 :      return i10 | 0;
   27637          11 :     }
   27638          11 :     HEAP32[i1 >> 2] = 0;
   27639          11 :     i10 = 0;
   27640          11 :     STACKTOP = i2;
   27641          11 :     return i10 | 0;
   27642          11 :    }
   27643          11 :    i8 = i4 + 12 | 0;
   27644          11 :    if ((HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   27645          11 :     _luaC_step(i4);
   27646          11 :    }
   27647          11 :    i7 = HEAP32[i7 >> 2] | 0;
   27648          11 :    if (i6) {
   27649          11 :     i3 = (HEAP32[i7 >> 2] | 0) + (i5 << 4) | 0;
   27650          11 :     i8 = i3 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   27651          11 :     break;
   27652          11 :    }
   27653          11 :    if (!((i5 | 0) < -1000999)) {
   27654          11 :     i8 = (HEAP32[i4 + 8 >> 2] | 0) + (i5 << 4) | 0;
   27655          11 :     break;
   27656          11 :    }
   27657          11 :    if ((i5 | 0) == -1001e3) {
   27658          11 :     i8 = (HEAP32[i8 >> 2] | 0) + 40 | 0;
   27659          11 :     break;
   27660          11 :    }
   27661          11 :    i4 = -1001e3 - i5 | 0;
   27662          11 :    i5 = HEAP32[i7 >> 2] | 0;
   27663          11 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   27664          11 :     i8 = i3 + (i4 + -1 << 4) + 16 | 0;
   27665          11 :    } else {
   27666          11 :     i8 = 5192;
   27667          11 :    }
   27668          11 :   }
   27669          11 :  } while (0);
   27670          11 :  i3 = HEAP32[i8 >> 2] | 0;
   27671          11 :  if ((i1 | 0) != 0) {
   27672          11 :   HEAP32[i1 >> 2] = HEAP32[i3 + 12 >> 2];
   27673          11 :  }
   27674          11 :  i10 = i3 + 16 | 0;
   27675          11 :  STACKTOP = i2;
   27676          11 :  return i10 | 0;
   27677          11 : }
   27678           7 : function _luaD_pcall(i3, i6, i5, i13, i14) {
   27679           7 :  i3 = i3 | 0;
   27680           7 :  i6 = i6 | 0;
   27681           7 :  i5 = i5 | 0;
   27682           7 :  i13 = i13 | 0;
   27683           7 :  i14 = i14 | 0;
   27684           7 :  var i1 = 0, i2 = 0, i4 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
   27685           7 :  i1 = STACKTOP;
   27686           7 :  i10 = i3 + 16 | 0;
   27687           7 :  i11 = HEAP32[i10 >> 2] | 0;
   27688           7 :  i12 = i3 + 41 | 0;
   27689           7 :  i7 = HEAP8[i12] | 0;
   27690           7 :  i9 = i3 + 36 | 0;
   27691           7 :  i8 = HEAP16[i9 >> 1] | 0;
   27692           7 :  i4 = i3 + 68 | 0;
   27693           7 :  i2 = HEAP32[i4 >> 2] | 0;
   27694           7 :  HEAP32[i4 >> 2] = i14;
   27695           7 :  i5 = _luaD_rawrunprotected(i3, i6, i5) | 0;
   27696           7 :  if ((i5 | 0) == 0) {
   27697           7 :   HEAP32[i4 >> 2] = i2;
   27698           7 :   STACKTOP = i1;
   27699           7 :   return i5 | 0;
   27700           7 :  }
   27701           7 :  i6 = i3 + 28 | 0;
   27702           7 :  i14 = HEAP32[i6 >> 2] | 0;
   27703           7 :  i15 = i14 + i13 | 0;
   27704           7 :  _luaF_close(i3, i15);
   27705           7 :  if ((i5 | 0) == 6) {
   27706           7 :   i16 = _luaS_newlstr(i3, 2424, 23) | 0;
   27707           7 :   HEAP32[i15 >> 2] = i16;
   27708           7 :   HEAP32[i14 + (i13 + 8) >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64;
   27709           7 :  } else if ((i5 | 0) == 4) {
   27710           7 :   i16 = HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 180 >> 2] | 0;
   27711           7 :   HEAP32[i15 >> 2] = i16;
   27712           7 :   HEAP32[i14 + (i13 + 8) >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64;
   27713           7 :  } else {
   27714           7 :   i16 = HEAP32[i3 + 8 >> 2] | 0;
   27715           7 :   i18 = i16 + -16 | 0;
   27716           7 :   i17 = HEAP32[i18 + 4 >> 2] | 0;
   27717           7 :   HEAP32[i15 >> 2] = HEAP32[i18 >> 2];
   27718           7 :   HEAP32[i15 + 4 >> 2] = i17;
   27719           7 :   HEAP32[i14 + (i13 + 8) >> 2] = HEAP32[i16 + -8 >> 2];
   27720           7 :  }
   27721           7 :  i13 = i14 + (i13 + 16) | 0;
   27722           7 :  HEAP32[i3 + 8 >> 2] = i13;
   27723           7 :  HEAP32[i10 >> 2] = i11;
   27724           7 :  HEAP8[i12] = i7;
   27725           7 :  HEAP16[i9 >> 1] = i8;
   27726           7 :  if ((i11 | 0) != 0) {
   27727           7 :   do {
   27728           7 :    i7 = HEAP32[i11 + 4 >> 2] | 0;
   27729           7 :    i13 = i13 >>> 0 < i7 >>> 0 ? i7 : i13;
   27730           7 :    i11 = HEAP32[i11 + 8 >> 2] | 0;
   27731           7 :   } while ((i11 | 0) != 0);
   27732           7 :  }
   27733           7 :  i6 = i13 - (HEAP32[i6 >> 2] | 0) | 0;
   27734           7 :  i7 = (i6 >> 4) + 1 | 0;
   27735           7 :  i7 = ((i7 | 0) / 8 | 0) + 10 + i7 | 0;
   27736           7 :  i7 = (i7 | 0) > 1e6 ? 1e6 : i7;
   27737           7 :  if ((i6 | 0) > 15999984) {
   27738           7 :   HEAP32[i4 >> 2] = i2;
   27739           7 :   STACKTOP = i1;
   27740           7 :   return i5 | 0;
   27741           7 :  }
   27742           7 :  if ((i7 | 0) >= (HEAP32[i3 + 32 >> 2] | 0)) {
   27743           7 :   HEAP32[i4 >> 2] = i2;
   27744           7 :   STACKTOP = i1;
   27745           7 :   return i5 | 0;
   27746           7 :  }
   27747           7 :  _luaD_reallocstack(i3, i7);
   27748           7 :  HEAP32[i4 >> 2] = i2;
   27749           7 :  STACKTOP = i1;
   27750           7 :  return i5 | 0;
   27751           7 : }
   27752      143052 : function _luaH_resize(i1, i4, i6, i9) {
   27753      143052 :  i1 = i1 | 0;
   27754      143052 :  i4 = i4 | 0;
   27755      143052 :  i6 = i6 | 0;
   27756      143052 :  i9 = i9 | 0;
   27757      143052 :  var i2 = 0, i3 = 0, i5 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0;
   27758      143052 :  i3 = STACKTOP;
   27759      143052 :  i8 = i4 + 28 | 0;
   27760      143052 :  i5 = HEAP32[i8 >> 2] | 0;
   27761      143052 :  i7 = HEAPU8[i4 + 7 | 0] | 0;
   27762      143052 :  i2 = HEAP32[i4 + 16 >> 2] | 0;
   27763      143052 :  if ((i5 | 0) < (i6 | 0)) {
   27764      143052 :   if ((i6 + 1 | 0) >>> 0 > 268435455) {
   27765      143052 :    _luaM_toobig(i1);
   27766      143052 :   }
   27767      143052 :   i11 = i4 + 12 | 0;
   27768      143052 :   i10 = _luaM_realloc_(i1, HEAP32[i11 >> 2] | 0, i5 << 4, i6 << 4) | 0;
   27769      143052 :   HEAP32[i11 >> 2] = i10;
   27770      143052 :   i11 = HEAP32[i8 >> 2] | 0;
   27771      143052 :   if ((i11 | 0) < (i6 | 0)) {
   27772      143052 :    do {
   27773      143052 :     HEAP32[i10 + (i11 << 4) + 8 >> 2] = 0;
   27774      143052 :     i11 = i11 + 1 | 0;
   27775      143052 :    } while ((i11 | 0) != (i6 | 0));
   27776      143052 :   }
   27777      143052 :   HEAP32[i8 >> 2] = i6;
   27778      143052 :  }
   27779      143052 :  _setnodevector(i1, i4, i9);
   27780      143052 :  do {
   27781      143052 :   if ((i5 | 0) > (i6 | 0)) {
   27782      143052 :    HEAP32[i8 >> 2] = i6;
   27783      143052 :    i8 = i4 + 12 | 0;
   27784      143052 :    i9 = i6;
   27785      143052 :    do {
   27786      143052 :     i10 = HEAP32[i8 >> 2] | 0;
   27787      143052 :     if ((HEAP32[i10 + (i9 << 4) + 8 >> 2] | 0) == 0) {
   27788      143052 :      i9 = i9 + 1 | 0;
   27789      143052 :     } else {
   27790      143052 :      i11 = i9 + 1 | 0;
   27791      143052 :      _luaH_setint(i1, i4, i11, i10 + (i9 << 4) | 0);
   27792      143052 :      i9 = i11;
   27793      143052 :     }
   27794      143052 :    } while ((i9 | 0) != (i5 | 0));
   27795      143052 :    if ((i6 + 1 | 0) >>> 0 > 268435455) {
   27796      143052 :     _luaM_toobig(i1);
   27797      143052 :    } else {
   27798      143052 :     i11 = i4 + 12 | 0;
   27799      143052 :     HEAP32[i11 >> 2] = _luaM_realloc_(i1, HEAP32[i11 >> 2] | 0, i5 << 4, i6 << 4) | 0;
   27800      143052 :     break;
   27801      143052 :    }
   27802      143052 :   }
   27803      143052 :  } while (0);
   27804      143052 :  i5 = 1 << i7;
   27805      143052 :  if ((i5 | 0) > 0) {
   27806      143052 :   i6 = i5;
   27807      143052 :   do {
   27808      143052 :    i6 = i6 + -1 | 0;
   27809      143052 :    i7 = i2 + (i6 << 5) + 8 | 0;
   27810      143052 :    if ((HEAP32[i7 >> 2] | 0) != 0) {
   27811      143052 :     i8 = i2 + (i6 << 5) + 16 | 0;
   27812      143052 :     i9 = _luaH_get(i4, i8) | 0;
   27813      143052 :     if ((i9 | 0) == 5192) {
   27814      143052 :      i9 = _luaH_newkey(i1, i4, i8) | 0;
   27815      143052 :     }
   27816      143052 :     i8 = i2 + (i6 << 5) | 0;
   27817      143052 :     i10 = HEAP32[i8 + 4 >> 2] | 0;
   27818      143052 :     i11 = i9;
   27819      143052 :     HEAP32[i11 >> 2] = HEAP32[i8 >> 2];
   27820      143052 :     HEAP32[i11 + 4 >> 2] = i10;
   27821      143052 :     HEAP32[i9 + 8 >> 2] = HEAP32[i7 >> 2];
   27822      143052 :    }
   27823      143052 :   } while ((i6 | 0) > 0);
   27824      143052 :  }
   27825      143052 :  if ((i2 | 0) == 8016) {
   27826      143052 :   STACKTOP = i3;
   27827      143052 :   return;
   27828      143052 :  }
   27829      143052 :  _luaM_realloc_(i1, i2, i5 << 5, 0) | 0;
   27830      143052 :  STACKTOP = i3;
   27831      143052 :  return;
   27832      143052 : }
   27833          13 : function _codearith(i4, i3, i2, i6, i5) {
   27834          13 :  i4 = i4 | 0;
   27835          13 :  i3 = i3 | 0;
   27836          13 :  i2 = i2 | 0;
   27837          13 :  i6 = i6 | 0;
   27838          13 :  i5 = i5 | 0;
   27839          13 :  var i1 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0;
   27840          13 :  i7 = STACKTOP;
   27841          13 :  if (((((((HEAP32[i2 >> 2] | 0) == 5 ? (HEAP32[i2 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i2 + 20 >> 2] | 0) == -1 : 0) ? (HEAP32[i6 >> 2] | 0) == 5 : 0) ? (HEAP32[i6 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i6 + 20 >> 2] | 0) == -1 : 0) ? (d13 = +HEAPF64[i6 + 8 >> 3], !((i3 & -2 | 0) == 16 & d13 == 0.0)) : 0) {
   27842          13 :   i12 = i2 + 8 | 0;
   27843          13 :   HEAPF64[i12 >> 3] = +_luaO_arith(i3 + -13 | 0, +HEAPF64[i12 >> 3], d13);
   27844          13 :   STACKTOP = i7;
   27845          13 :   return;
   27846          13 :  }
   27847          13 :  if ((i3 | 0) == 19 | (i3 | 0) == 21) {
   27848          13 :   i11 = 0;
   27849          13 :  } else {
   27850          13 :   i11 = _luaK_exp2RK(i4, i6) | 0;
   27851          13 :  }
   27852          13 :  i12 = _luaK_exp2RK(i4, i2) | 0;
   27853          13 :  if ((i12 | 0) > (i11 | 0)) {
   27854          13 :   if (((HEAP32[i2 >> 2] | 0) == 6 ? (i8 = HEAP32[i2 + 8 >> 2] | 0, (i8 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i8 | 0) : 0) {
   27855          13 :    i10 = i4 + 48 | 0;
   27856          13 :    HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
   27857          13 :   }
   27858          13 :   if (((HEAP32[i6 >> 2] | 0) == 6 ? (i1 = HEAP32[i6 + 8 >> 2] | 0, (i1 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i1 | 0) : 0) {
   27859          13 :    i10 = i4 + 48 | 0;
   27860          13 :    HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
   27861          13 :   }
   27862          13 :  } else {
   27863          13 :   if (((HEAP32[i6 >> 2] | 0) == 6 ? (i10 = HEAP32[i6 + 8 >> 2] | 0, (i10 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i10 | 0) : 0) {
   27864          13 :    i10 = i4 + 48 | 0;
   27865          13 :    HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
   27866          13 :   }
   27867          13 :   if (((HEAP32[i2 >> 2] | 0) == 6 ? (i9 = HEAP32[i2 + 8 >> 2] | 0, (i9 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i9 | 0) : 0) {
   27868          13 :    i10 = i4 + 48 | 0;
   27869          13 :    HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
   27870          13 :   }
   27871          13 :  }
   27872          13 :  HEAP32[i2 + 8 >> 2] = _luaK_code(i4, i11 << 14 | i3 | i12 << 23) | 0;
   27873          13 :  HEAP32[i2 >> 2] = 11;
   27874          13 :  HEAP32[(HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] | 0) + ((HEAP32[i4 + 20 >> 2] | 0) + -1 << 2) >> 2] = i5;
   27875          13 :  STACKTOP = i7;
   27876          13 :  return;
   27877          13 : }
   27878           4 : function _GCTM(i1, i3) {
   27879           4 :  i1 = i1 | 0;
   27880           4 :  i3 = i3 | 0;
   27881           4 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
   27882           4 :  i4 = STACKTOP;
   27883           4 :  STACKTOP = STACKTOP + 32 | 0;
   27884           4 :  i2 = i4 + 16 | 0;
   27885           4 :  i5 = i4;
   27886           4 :  i6 = HEAP32[i1 + 12 >> 2] | 0;
   27887           4 :  i9 = i6 + 104 | 0;
   27888           4 :  i8 = HEAP32[i9 >> 2] | 0;
   27889           4 :  HEAP32[i9 >> 2] = HEAP32[i8 >> 2];
   27890           4 :  i9 = i6 + 68 | 0;
   27891           4 :  HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
   27892           4 :  HEAP32[i9 >> 2] = i8;
   27893           4 :  i9 = i8 + 5 | 0;
   27894           4 :  i7 = HEAPU8[i9] | 0;
   27895           4 :  HEAP8[i9] = i7 & 239;
   27896           4 :  if ((HEAPU8[i6 + 61 | 0] | 0) >= 2) {
   27897           4 :   HEAP8[i9] = HEAP8[i6 + 60 | 0] & 3 | i7 & 168;
   27898           4 :  }
   27899           4 :  HEAP32[i5 >> 2] = i8;
   27900           4 :  i7 = i5 + 8 | 0;
   27901           4 :  HEAP32[i7 >> 2] = HEAPU8[i8 + 4 | 0] | 0 | 64;
   27902           4 :  i8 = _luaT_gettmbyobj(i1, i5, 2) | 0;
   27903           4 :  if ((i8 | 0) == 0) {
   27904           4 :   STACKTOP = i4;
   27905           4 :   return;
   27906           4 :  }
   27907           4 :  i9 = i8 + 8 | 0;
   27908           4 :  if ((HEAP32[i9 >> 2] & 15 | 0) != 6) {
   27909           4 :   STACKTOP = i4;
   27910           4 :   return;
   27911           4 :  }
   27912           4 :  i12 = i1 + 41 | 0;
   27913           4 :  i13 = HEAP8[i12] | 0;
   27914           4 :  i10 = i6 + 63 | 0;
   27915           4 :  i11 = HEAP8[i10] | 0;
   27916           4 :  HEAP8[i12] = 0;
   27917           4 :  HEAP8[i10] = 0;
   27918           4 :  i6 = i1 + 8 | 0;
   27919           4 :  i14 = HEAP32[i6 >> 2] | 0;
   27920           4 :  i16 = i8;
   27921           4 :  i15 = HEAP32[i16 + 4 >> 2] | 0;
   27922           4 :  i8 = i14;
   27923           4 :  HEAP32[i8 >> 2] = HEAP32[i16 >> 2];
   27924           4 :  HEAP32[i8 + 4 >> 2] = i15;
   27925           4 :  HEAP32[i14 + 8 >> 2] = HEAP32[i9 >> 2];
   27926           4 :  i9 = HEAP32[i6 >> 2] | 0;
   27927           4 :  i14 = i5;
   27928           4 :  i8 = HEAP32[i14 + 4 >> 2] | 0;
   27929           4 :  i5 = i9 + 16 | 0;
   27930           4 :  HEAP32[i5 >> 2] = HEAP32[i14 >> 2];
   27931           4 :  HEAP32[i5 + 4 >> 2] = i8;
   27932           4 :  HEAP32[i9 + 24 >> 2] = HEAP32[i7 >> 2];
   27933           4 :  i5 = HEAP32[i6 >> 2] | 0;
   27934           4 :  HEAP32[i6 >> 2] = i5 + 32;
   27935           4 :  i5 = _luaD_pcall(i1, 7, 0, i5 - (HEAP32[i1 + 28 >> 2] | 0) | 0, 0) | 0;
   27936           4 :  HEAP8[i12] = i13;
   27937           4 :  HEAP8[i10] = i11;
   27938           4 :  if ((i5 | 0) == 0 | (i3 | 0) == 0) {
   27939           4 :   STACKTOP = i4;
   27940           4 :   return;
   27941           4 :  }
   27942           4 :  if ((i5 | 0) != 2) {
   27943           4 :   i16 = i5;
   27944           4 :   _luaD_throw(i1, i16);
   27945           4 :  }
   27946           4 :  i3 = HEAP32[i6 >> 2] | 0;
   27947           4 :  if ((HEAP32[i3 + -8 >> 2] & 15 | 0) == 4) {
   27948           4 :   i3 = (HEAP32[i3 + -16 >> 2] | 0) + 16 | 0;
   27949           4 :  } else {
   27950           4 :   i3 = 2528;
   27951           4 :  }
   27952           4 :  HEAP32[i2 >> 2] = i3;
   27953           4 :  _luaO_pushfstring(i1, 2544, i2) | 0;
   27954           4 :  i16 = 5;
   27955           4 :  _luaD_throw(i1, i16);
   27956           4 : }
   27957           2 : function _lua_gc(i3, i5, i4) {
   27958           2 :  i3 = i3 | 0;
   27959           2 :  i5 = i5 | 0;
   27960           2 :  i4 = i4 | 0;
   27961           2 :  var i1 = 0, i2 = 0;
   27962           2 :  i1 = STACKTOP;
   27963           2 :  i2 = HEAP32[i3 + 12 >> 2] | 0;
   27964           2 :  L1 : do {
   27965           2 :   switch (i5 | 0) {
   27966           2 :   case 8:
   27967           2 :    {
   27968           2 :     i5 = i2 + 160 | 0;
   27969           2 :     i2 = HEAP32[i5 >> 2] | 0;
   27970           2 :     HEAP32[i5 >> 2] = i4;
   27971           2 :     break;
   27972           2 :    }
   27973           2 :   case 11:
   27974           2 :    {
   27975           2 :     _luaC_changemode(i3, 0);
   27976           2 :     i2 = 0;
   27977           2 :     break;
   27978           2 :    }
   27979           2 :   case 2:
   27980           2 :    {
   27981           2 :     _luaC_fullgc(i3, 0);
   27982           2 :     i2 = 0;
   27983           2 :     break;
   27984           2 :    }
   27985           2 :   case 5:
   27986           2 :    {
   27987           2 :     if ((HEAP8[i2 + 62 | 0] | 0) == 2) {
   27988           2 :      i2 = (HEAP32[i2 + 20 >> 2] | 0) == 0 | 0;
   27989           2 :      _luaC_forcestep(i3);
   27990           2 :      break L1;
   27991           2 :     }
   27992           2 :     i4 = (i4 << 10) + -1600 | 0;
   27993           2 :     if ((HEAP8[i2 + 63 | 0] | 0) == 0) {
   27994           2 :      i5 = i4;
   27995           2 :      _luaE_setdebt(i2, i5);
   27996           2 :      _luaC_forcestep(i3);
   27997           2 :      i5 = i2 + 61 | 0;
   27998           2 :      i5 = HEAP8[i5] | 0;
   27999           2 :      i5 = i5 << 24 >> 24 == 5;
   28000           2 :      i5 = i5 & 1;
   28001           2 :      STACKTOP = i1;
   28002           2 :      return i5 | 0;
   28003           2 :     }
   28004           2 :     i5 = (HEAP32[i2 + 12 >> 2] | 0) + i4 | 0;
   28005           2 :     _luaE_setdebt(i2, i5);
   28006           2 :     _luaC_forcestep(i3);
   28007           2 :     i5 = i2 + 61 | 0;
   28008           2 :     i5 = HEAP8[i5] | 0;
   28009           2 :     i5 = i5 << 24 >> 24 == 5;
   28010           2 :     i5 = i5 & 1;
   28011           2 :     STACKTOP = i1;
   28012           2 :     return i5 | 0;
   28013           2 :    }
   28014           2 :   case 4:
   28015           2 :    {
   28016           2 :     i2 = (HEAP32[i2 + 12 >> 2] | 0) + (HEAP32[i2 + 8 >> 2] | 0) & 1023;
   28017           2 :     break;
   28018           2 :    }
   28019           2 :   case 1:
   28020           2 :    {
   28021           2 :     _luaE_setdebt(i2, 0);
   28022           2 :     HEAP8[i2 + 63 | 0] = 1;
   28023           2 :     i2 = 0;
   28024           2 :     break;
   28025           2 :    }
   28026           2 :   case 3:
   28027           2 :    {
   28028           2 :     i2 = ((HEAP32[i2 + 12 >> 2] | 0) + (HEAP32[i2 + 8 >> 2] | 0) | 0) >>> 10;
   28029           2 :     break;
   28030           2 :    }
   28031           2 :   case 7:
   28032           2 :    {
   28033           2 :     i5 = i2 + 164 | 0;
   28034           2 :     i2 = HEAP32[i5 >> 2] | 0;
   28035           2 :     HEAP32[i5 >> 2] = i4;
   28036           2 :     break;
   28037           2 :    }
   28038           2 :   case 0:
   28039           2 :    {
   28040           2 :     HEAP8[i2 + 63 | 0] = 0;
   28041           2 :     i2 = 0;
   28042           2 :     break;
   28043           2 :    }
   28044           2 :   case 6:
   28045           2 :    {
   28046           2 :     i5 = i2 + 156 | 0;
   28047           2 :     i2 = HEAP32[i5 >> 2] | 0;
   28048           2 :     HEAP32[i5 >> 2] = i4;
   28049           2 :     break;
   28050           2 :    }
   28051           2 :   case 9:
   28052           2 :    {
   28053           2 :     i2 = HEAPU8[i2 + 63 | 0] | 0;
   28054           2 :     break;
   28055           2 :    }
   28056           2 :   case 10:
   28057           2 :    {
   28058           2 :     _luaC_changemode(i3, 2);
   28059           2 :     i2 = 0;
   28060           2 :     break;
   28061           2 :    }
   28062           2 :   default:
   28063           2 :    {
   28064           2 :     i2 = -1;
   28065           2 :    }
   28066           2 :   }
   28067           2 :  } while (0);
   28068           2 :  STACKTOP = i1;
   28069           2 :  return i2 | 0;
   28070           2 : }
   28071           1 : function _os_time(i1) {
   28072           0 :  i1 = i1 | 0;
   28073           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   28074           0 :  i2 = STACKTOP;
   28075           0 :  STACKTOP = STACKTOP + 64 | 0;
   28076           0 :  i4 = i2;
   28077           0 :  i5 = i2 + 48 | 0;
   28078           0 :  i3 = i2 + 4 | 0;
   28079           0 :  if ((_lua_type(i1, 1) | 0) < 1) {
   28080           0 :   i3 = _time(0) | 0;
   28081           0 :  } else {
   28082           0 :   _luaL_checktype(i1, 1, 5);
   28083           0 :   _lua_settop(i1, 1);
   28084           0 :   _lua_getfield(i1, -1, 5864);
   28085           0 :   i6 = _lua_tointegerx(i1, -1, i4) | 0;
   28086           0 :   i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 0 : i6;
   28087           0 :   _lua_settop(i1, -2);
   28088           0 :   HEAP32[i3 >> 2] = i6;
   28089           0 :   _lua_getfield(i1, -1, 5872);
   28090           0 :   i6 = _lua_tointegerx(i1, -1, i4) | 0;
   28091           0 :   i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 0 : i6;
   28092           0 :   _lua_settop(i1, -2);
   28093           0 :   HEAP32[i3 + 4 >> 2] = i6;
   28094           0 :   _lua_getfield(i1, -1, 5880);
   28095           0 :   i6 = _lua_tointegerx(i1, -1, i4) | 0;
   28096           0 :   i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 12 : i6;
   28097           0 :   _lua_settop(i1, -2);
   28098           0 :   HEAP32[i3 + 8 >> 2] = i6;
   28099           0 :   _lua_getfield(i1, -1, 5888);
   28100           0 :   i6 = _lua_tointegerx(i1, -1, i5) | 0;
   28101           0 :   if ((HEAP32[i5 >> 2] | 0) == 0) {
   28102           0 :    HEAP32[i4 >> 2] = 5888;
   28103           0 :    i6 = _luaL_error(i1, 5920, i4) | 0;
   28104           0 :   } else {
   28105           0 :    _lua_settop(i1, -2);
   28106           0 :   }
   28107           0 :   HEAP32[i3 + 12 >> 2] = i6;
   28108           0 :   _lua_getfield(i1, -1, 5896);
   28109           0 :   i6 = _lua_tointegerx(i1, -1, i5) | 0;
   28110           0 :   if ((HEAP32[i5 >> 2] | 0) == 0) {
   28111           0 :    HEAP32[i4 >> 2] = 5896;
   28112           0 :    i6 = _luaL_error(i1, 5920, i4) | 0;
   28113           0 :   } else {
   28114           0 :    _lua_settop(i1, -2);
   28115           0 :   }
   28116           0 :   HEAP32[i3 + 16 >> 2] = i6 + -1;
   28117           0 :   _lua_getfield(i1, -1, 5904);
   28118           0 :   i6 = _lua_tointegerx(i1, -1, i5) | 0;
   28119           0 :   if ((HEAP32[i5 >> 2] | 0) == 0) {
   28120           0 :    HEAP32[i4 >> 2] = 5904;
   28121           0 :    i6 = _luaL_error(i1, 5920, i4) | 0;
   28122           0 :   } else {
   28123           0 :    _lua_settop(i1, -2);
   28124           0 :   }
   28125           0 :   HEAP32[i3 + 20 >> 2] = i6 + -1900;
   28126           0 :   _lua_getfield(i1, -1, 5912);
   28127           0 :   if ((_lua_type(i1, -1) | 0) == 0) {
   28128           0 :    i4 = -1;
   28129           0 :   } else {
   28130           0 :    i4 = _lua_toboolean(i1, -1) | 0;
   28131           0 :   }
   28132           0 :   _lua_settop(i1, -2);
   28133           0 :   HEAP32[i3 + 32 >> 2] = i4;
   28134           0 :   i3 = _mktime(i3 | 0) | 0;
   28135           0 :  }
   28136           0 :  if ((i3 | 0) == -1) {
   28137           0 :   _lua_pushnil(i1);
   28138           0 :   STACKTOP = i2;
   28139           0 :   return 1;
   28140           0 :  } else {
   28141           0 :   _lua_pushnumber(i1, +(i3 | 0));
   28142           0 :   STACKTOP = i2;
   28143           0 :   return 1;
   28144           0 :  }
   28145           0 :  return 0;
   28146           1 : }
   28147          53 : function _addk(i6, i4, i3) {
   28148          53 :  i6 = i6 | 0;
   28149          53 :  i4 = i4 | 0;
   28150          53 :  i3 = i3 | 0;
   28151          53 :  var i1 = 0, i2 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   28152          53 :  i1 = STACKTOP;
   28153          53 :  STACKTOP = STACKTOP + 16 | 0;
   28154          53 :  i10 = i1;
   28155          53 :  i2 = HEAP32[(HEAP32[i6 + 12 >> 2] | 0) + 52 >> 2] | 0;
   28156          53 :  i8 = _luaH_set(i2, HEAP32[i6 + 4 >> 2] | 0, i4) | 0;
   28157          53 :  i4 = HEAP32[i6 >> 2] | 0;
   28158          53 :  i9 = i8 + 8 | 0;
   28159          53 :  if (((HEAP32[i9 >> 2] | 0) == 3 ? (HEAPF64[i10 >> 3] = +HEAPF64[i8 >> 3] + 6755399441055744.0, i7 = HEAP32[i10 >> 2] | 0, i5 = HEAP32[i4 + 8 >> 2] | 0, (HEAP32[i5 + (i7 << 4) + 8 >> 2] | 0) == (HEAP32[i3 + 8 >> 2] | 0)) : 0) ? (_luaV_equalobj_(0, i5 + (i7 << 4) | 0, i3) | 0) != 0 : 0) {
   28160          53 :   i10 = i7;
   28161          53 :   STACKTOP = i1;
   28162          53 :   return i10 | 0;
   28163          53 :  }
   28164          53 :  i5 = i4 + 44 | 0;
   28165          53 :  i10 = HEAP32[i5 >> 2] | 0;
   28166          53 :  i7 = i6 + 32 | 0;
   28167          53 :  i6 = HEAP32[i7 >> 2] | 0;
   28168          53 :  HEAPF64[i8 >> 3] = +(i6 | 0);
   28169          53 :  HEAP32[i9 >> 2] = 3;
   28170          53 :  i9 = HEAP32[i5 >> 2] | 0;
   28171          53 :  if ((i6 | 0) >= (i9 | 0)) {
   28172          53 :   i9 = i4 + 8 | 0;
   28173          53 :   HEAP32[i9 >> 2] = _luaM_growaux_(i2, HEAP32[i9 >> 2] | 0, i5, 16, 67108863, 10600) | 0;
   28174          53 :   i9 = HEAP32[i5 >> 2] | 0;
   28175          53 :  }
   28176          53 :  i8 = HEAP32[i4 + 8 >> 2] | 0;
   28177          53 :  if ((i10 | 0) < (i9 | 0)) {
   28178          53 :   while (1) {
   28179          53 :    i9 = i10 + 1 | 0;
   28180          53 :    HEAP32[i8 + (i10 << 4) + 8 >> 2] = 0;
   28181          53 :    if ((i9 | 0) < (HEAP32[i5 >> 2] | 0)) {
   28182          53 :     i10 = i9;
   28183          53 :    } else {
   28184          53 :     break;
   28185          53 :    }
   28186          53 :   }
   28187          53 :  }
   28188          53 :  i5 = i3;
   28189          53 :  i9 = HEAP32[i5 + 4 >> 2] | 0;
   28190          53 :  i10 = i8 + (i6 << 4) | 0;
   28191          53 :  HEAP32[i10 >> 2] = HEAP32[i5 >> 2];
   28192          53 :  HEAP32[i10 + 4 >> 2] = i9;
   28193          53 :  i10 = i3 + 8 | 0;
   28194          53 :  HEAP32[i8 + (i6 << 4) + 8 >> 2] = HEAP32[i10 >> 2];
   28195          53 :  HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1;
   28196          53 :  if ((HEAP32[i10 >> 2] & 64 | 0) == 0) {
   28197          53 :   i10 = i6;
   28198          53 :   STACKTOP = i1;
   28199          53 :   return i10 | 0;
   28200          53 :  }
   28201          53 :  i3 = HEAP32[i3 >> 2] | 0;
   28202          53 :  if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
   28203          53 :   i10 = i6;
   28204          53 :   STACKTOP = i1;
   28205          53 :   return i10 | 0;
   28206          53 :  }
   28207          53 :  if ((HEAP8[i4 + 5 | 0] & 4) == 0) {
   28208          53 :   i10 = i6;
   28209          53 :   STACKTOP = i1;
   28210          53 :   return i10 | 0;
   28211          53 :  }
   28212          53 :  _luaC_barrier_(i2, i4, i3);
   28213          53 :  i10 = i6;
   28214          53 :  STACKTOP = i1;
   28215          53 :  return i10 | 0;
   28216          53 : }
   28217          96 : function _singlevaraux(i5, i4, i2, i11) {
   28218          96 :  i5 = i5 | 0;
   28219          96 :  i4 = i4 | 0;
   28220          96 :  i2 = i2 | 0;
   28221          96 :  i11 = i11 | 0;
   28222          96 :  var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   28223          96 :  i1 = STACKTOP;
   28224          96 :  if ((i5 | 0) == 0) {
   28225          96 :   i11 = 0;
   28226          96 :   STACKTOP = i1;
   28227          96 :   return i11 | 0;
   28228          96 :  }
   28229          96 :  i7 = i5 + 12 | 0;
   28230          96 :  i8 = i5 + 40 | 0;
   28231          96 :  i9 = HEAPU8[i5 + 46 | 0] | 0;
   28232          96 :  while (1) {
   28233          96 :   i6 = i9 + -1 | 0;
   28234          96 :   i10 = HEAP32[i5 >> 2] | 0;
   28235          96 :   if ((i9 | 0) <= 0) {
   28236          96 :    break;
   28237          96 :   }
   28238          96 :   if ((_luaS_eqstr(i4, HEAP32[(HEAP32[i10 + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i7 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i8 >> 2] | 0) + i6 << 1) >> 1] | 0) * 12 | 0) >> 2] | 0) | 0) == 0) {
   28239          96 :    i9 = i6;
   28240          96 :   } else {
   28241          96 :    i3 = 5;
   28242          96 :    break;
   28243          96 :   }
   28244          96 :  }
   28245          96 :  if ((i3 | 0) == 5) {
   28246          96 :   HEAP32[i2 + 16 >> 2] = -1;
   28247          96 :   HEAP32[i2 + 20 >> 2] = -1;
   28248          96 :   HEAP32[i2 >> 2] = 7;
   28249          96 :   HEAP32[i2 + 8 >> 2] = i6;
   28250          96 :   if ((i11 | 0) != 0) {
   28251          96 :    i11 = 7;
   28252          96 :    STACKTOP = i1;
   28253          96 :    return i11 | 0;
   28254          96 :   }
   28255          96 :   i2 = i5 + 16 | 0;
   28256          96 :   do {
   28257          96 :    i2 = HEAP32[i2 >> 2] | 0;
   28258          96 :   } while ((HEAPU8[i2 + 8 | 0] | 0) > (i6 | 0));
   28259          96 :   HEAP8[i2 + 9 | 0] = 1;
   28260          96 :   i11 = 7;
   28261          96 :   STACKTOP = i1;
   28262          96 :   return i11 | 0;
   28263          96 :  }
   28264          96 :  i7 = HEAP32[i10 + 28 >> 2] | 0;
   28265          96 :  i6 = i5 + 47 | 0;
   28266          96 :  L17 : do {
   28267          96 :   if ((HEAP8[i6] | 0) != 0) {
   28268          96 :    i8 = 0;
   28269          96 :    while (1) {
   28270          96 :     i9 = i8 + 1 | 0;
   28271          96 :     if ((_luaS_eqstr(HEAP32[i7 + (i8 << 3) >> 2] | 0, i4) | 0) != 0) {
   28272          96 :      break;
   28273          96 :     }
   28274          96 :     if ((i9 | 0) < (HEAPU8[i6] | 0)) {
   28275          96 :      i8 = i9;
   28276          96 :     } else {
   28277          96 :      i3 = 13;
   28278          96 :      break L17;
   28279          96 :     }
   28280          96 :    }
   28281          96 :    if ((i8 | 0) < 0) {
   28282          96 :     i3 = 13;
   28283          96 :    }
   28284          96 :   } else {
   28285          96 :    i3 = 13;
   28286          96 :   }
   28287          96 :  } while (0);
   28288          96 :  do {
   28289          96 :   if ((i3 | 0) == 13) {
   28290          96 :    if ((_singlevaraux(HEAP32[i5 + 8 >> 2] | 0, i4, i2, 0) | 0) == 0) {
   28291          96 :     i11 = 0;
   28292          96 :     STACKTOP = i1;
   28293          96 :     return i11 | 0;
   28294          96 :    } else {
   28295          96 :     i8 = _newupvalue(i5, i4, i2) | 0;
   28296          96 :     break;
   28297          96 :    }
   28298          96 :   }
   28299          96 :  } while (0);
   28300          96 :  HEAP32[i2 + 16 >> 2] = -1;
   28301          96 :  HEAP32[i2 + 20 >> 2] = -1;
   28302          96 :  HEAP32[i2 >> 2] = 8;
   28303          96 :  HEAP32[i2 + 8 >> 2] = i8;
   28304          96 :  i11 = 8;
   28305          96 :  STACKTOP = i1;
   28306          96 :  return i11 | 0;
   28307          96 : }
   28308         775 : function _mainposition(i1, i3) {
   28309         775 :  i1 = i1 | 0;
   28310         775 :  i3 = i3 | 0;
   28311         775 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0;
   28312         775 :  i2 = STACKTOP;
   28313         775 :  STACKTOP = STACKTOP + 16 | 0;
   28314         775 :  i4 = i2;
   28315         775 :  switch (HEAP32[i3 + 8 >> 2] & 63 | 0) {
   28316         775 :  case 3:
   28317         775 :   {
   28318         775 :    HEAPF64[i4 >> 3] = +HEAPF64[i3 >> 3] + 1.0;
   28319         775 :    i3 = (HEAP32[i4 + 4 >> 2] | 0) + (HEAP32[i4 >> 2] | 0) | 0;
   28320         775 :    if ((i3 | 0) < 0) {
   28321         775 :     i4 = 0 - i3 | 0;
   28322         775 :     i3 = (i3 | 0) == (i4 | 0) ? 0 : i4;
   28323         775 :    }
   28324         775 :    i5 = (HEAP32[i1 + 16 >> 2] | 0) + (((i3 | 0) % ((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1 | 0) | 0) << 5) | 0;
   28325         775 :    STACKTOP = i2;
   28326         775 :    return i5 | 0;
   28327         775 :   }
   28328         775 :  case 2:
   28329         775 :   {
   28330         775 :    i5 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0;
   28331         775 :    STACKTOP = i2;
   28332         775 :    return i5 | 0;
   28333         775 :   }
   28334         775 :  case 20:
   28335         775 :   {
   28336         775 :    i5 = HEAP32[i3 >> 2] | 0;
   28337         775 :    i4 = i5 + 6 | 0;
   28338         775 :    if ((HEAP8[i4] | 0) == 0) {
   28339         775 :     i6 = i5 + 8 | 0;
   28340         775 :     HEAP32[i6 >> 2] = _luaS_hash(i5 + 16 | 0, HEAP32[i5 + 12 >> 2] | 0, HEAP32[i6 >> 2] | 0) | 0;
   28341         775 :     HEAP8[i4] = 1;
   28342         775 :     i5 = HEAP32[i3 >> 2] | 0;
   28343         775 :    }
   28344         775 :    i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[i5 + 8 >> 2]) << 5) | 0;
   28345         775 :    STACKTOP = i2;
   28346         775 :    return i6 | 0;
   28347         775 :   }
   28348         775 :  case 22:
   28349         775 :   {
   28350         775 :    i6 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0;
   28351         775 :    STACKTOP = i2;
   28352         775 :    return i6 | 0;
   28353         775 :   }
   28354         775 :  case 4:
   28355         775 :   {
   28356         775 :    i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2]) << 5) | 0;
   28357         775 :    STACKTOP = i2;
   28358         775 :    return i6 | 0;
   28359         775 :   }
   28360         775 :  case 1:
   28361         775 :   {
   28362         775 :    i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[i3 >> 2]) << 5) | 0;
   28363         775 :    STACKTOP = i2;
   28364         775 :    return i6 | 0;
   28365         775 :   }
   28366         775 :  default:
   28367         775 :   {
   28368         775 :    i6 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0;
   28369         775 :    STACKTOP = i2;
   28370         775 :    return i6 | 0;
   28371         775 :   }
   28372         775 :  }
   28373         775 :  return 0;
   28374         775 : }
   28375          88 : function _clearvalues(i2, i5, i1) {
   28376          88 :  i2 = i2 | 0;
   28377          88 :  i5 = i5 | 0;
   28378          88 :  i1 = i1 | 0;
   28379          88 :  var i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   28380          88 :  i4 = STACKTOP;
   28381          88 :  if ((i5 | 0) == (i1 | 0)) {
   28382          88 :   STACKTOP = i4;
   28383          88 :   return;
   28384          88 :  }
   28385          88 :  do {
   28386          88 :   i7 = i5 + 16 | 0;
   28387          88 :   i9 = HEAP32[i7 >> 2] | 0;
   28388          88 :   i6 = i9 + (1 << (HEAPU8[i5 + 7 | 0] | 0) << 5) | 0;
   28389          88 :   i8 = i5 + 28 | 0;
   28390          88 :   if ((HEAP32[i8 >> 2] | 0) > 0) {
   28391          88 :    i11 = i5 + 12 | 0;
   28392          88 :    i12 = 0;
   28393          88 :    do {
   28394          88 :     i13 = HEAP32[i11 >> 2] | 0;
   28395          88 :     i10 = i13 + (i12 << 4) + 8 | 0;
   28396          88 :     i9 = HEAP32[i10 >> 2] | 0;
   28397          88 :     do {
   28398          88 :      if ((i9 & 64 | 0) != 0) {
   28399          88 :       i13 = HEAP32[i13 + (i12 << 4) >> 2] | 0;
   28400          88 :       if ((i9 & 15 | 0) != 4) {
   28401          88 :        if ((HEAP8[i13 + 5 | 0] & 3) == 0) {
   28402          88 :         break;
   28403          88 :        }
   28404          88 :        HEAP32[i10 >> 2] = 0;
   28405          88 :        break;
   28406          88 :       }
   28407          88 :       if ((i13 | 0) != 0 ? !((HEAP8[i13 + 5 | 0] & 3) == 0) : 0) {
   28408          88 :        _reallymarkobject(i2, i13);
   28409          88 :       }
   28410          88 :      }
   28411          88 :     } while (0);
   28412          88 :     i12 = i12 + 1 | 0;
   28413          88 :    } while ((i12 | 0) < (HEAP32[i8 >> 2] | 0));
   28414          88 :    i7 = HEAP32[i7 >> 2] | 0;
   28415          88 :   } else {
   28416          88 :    i7 = i9;
   28417          88 :   }
   28418          88 :   if (i7 >>> 0 < i6 >>> 0) {
   28419          88 :    do {
   28420          88 :     i8 = i7 + 8 | 0;
   28421          88 :     i9 = HEAP32[i8 >> 2] | 0;
   28422          88 :     do {
   28423          88 :      if (!((i9 | 0) == 0 | (i9 & 64 | 0) == 0)) {
   28424          88 :       i10 = HEAP32[i7 >> 2] | 0;
   28425          88 :       if ((i9 & 15 | 0) == 4) {
   28426          88 :        if ((i10 | 0) == 0) {
   28427          88 :         break;
   28428          88 :        }
   28429          88 :        if ((HEAP8[i10 + 5 | 0] & 3) == 0) {
   28430          88 :         break;
   28431          88 :        }
   28432          88 :        _reallymarkobject(i2, i10);
   28433          88 :        break;
   28434          88 :       }
   28435          88 :       if ((!((HEAP8[i10 + 5 | 0] & 3) == 0) ? (HEAP32[i8 >> 2] = 0, i3 = i7 + 24 | 0, (HEAP32[i3 >> 2] & 64 | 0) != 0) : 0) ? !((HEAP8[(HEAP32[i7 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
   28436          88 :        HEAP32[i3 >> 2] = 11;
   28437          88 :       }
   28438          88 :      }
   28439          88 :     } while (0);
   28440          88 :     i7 = i7 + 32 | 0;
   28441          88 :    } while (i7 >>> 0 < i6 >>> 0);
   28442          88 :   }
   28443          88 :   i5 = HEAP32[i5 + 24 >> 2] | 0;
   28444          88 :  } while ((i5 | 0) != (i1 | 0));
   28445          88 :  STACKTOP = i4;
   28446          88 :  return;
   28447          88 : }
   28448       52164 : function _reallymarkobject(i1, i4) {
   28449       52164 :  i1 = i1 | 0;
   28450       52164 :  i4 = i4 | 0;
   28451       52164 :  var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0;
   28452       52164 :  i3 = STACKTOP;
   28453       52164 :  i2 = i4 + 5 | 0;
   28454       52164 :  HEAP8[i2] = HEAP8[i2] & 252;
   28455       52164 :  switch (HEAPU8[i4 + 4 | 0] | 0 | 0) {
   28456       52164 :  case 6:
   28457       52164 :   {
   28458       52164 :    i7 = i1 + 84 | 0;
   28459       52164 :    HEAP32[i4 + 8 >> 2] = HEAP32[i7 >> 2];
   28460       52164 :    HEAP32[i7 >> 2] = i4;
   28461       52164 :    STACKTOP = i3;
   28462       52164 :    return;
   28463       52164 :   }
   28464       52164 :  case 20:
   28465       52164 :  case 4:
   28466       52164 :   {
   28467       52164 :    i4 = (HEAP32[i4 + 12 >> 2] | 0) + 17 | 0;
   28468       52164 :    break;
   28469       52164 :   }
   28470       52164 :  case 7:
   28471       52164 :   {
   28472       52164 :    i5 = HEAP32[i4 + 8 >> 2] | 0;
   28473       52164 :    if ((i5 | 0) != 0 ? !((HEAP8[i5 + 5 | 0] & 3) == 0) : 0) {
   28474       52164 :     _reallymarkobject(i1, i5);
   28475       52164 :    }
   28476       52164 :    i5 = HEAP32[i4 + 12 >> 2] | 0;
   28477       52164 :    if ((i5 | 0) != 0 ? !((HEAP8[i5 + 5 | 0] & 3) == 0) : 0) {
   28478       52164 :     _reallymarkobject(i1, i5);
   28479       52164 :    }
   28480       52164 :    i4 = (HEAP32[i4 + 16 >> 2] | 0) + 24 | 0;
   28481       52164 :    break;
   28482       52164 :   }
   28483       52164 :  case 8:
   28484       52164 :   {
   28485       52164 :    i7 = i1 + 84 | 0;
   28486       52164 :    HEAP32[i4 + 60 >> 2] = HEAP32[i7 >> 2];
   28487       52164 :    HEAP32[i7 >> 2] = i4;
   28488       52164 :    STACKTOP = i3;
   28489       52164 :    return;
   28490       52164 :   }
   28491       52164 :  case 10:
   28492       52164 :   {
   28493       52164 :    i6 = i4 + 8 | 0;
   28494       52164 :    i7 = HEAP32[i6 >> 2] | 0;
   28495       52164 :    if ((HEAP32[i7 + 8 >> 2] & 64 | 0) != 0 ? (i5 = HEAP32[i7 >> 2] | 0, !((HEAP8[i5 + 5 | 0] & 3) == 0)) : 0) {
   28496       52164 :     _reallymarkobject(i1, i5);
   28497       52164 :     i7 = HEAP32[i6 >> 2] | 0;
   28498       52164 :    }
   28499       52164 :    if ((i7 | 0) == (i4 + 16 | 0)) {
   28500       52164 :     i4 = 32;
   28501       52164 :    } else {
   28502       52164 :     STACKTOP = i3;
   28503       52164 :     return;
   28504       52164 :    }
   28505       52164 :    break;
   28506       52164 :   }
   28507       52164 :  case 5:
   28508       52164 :   {
   28509       52164 :    i7 = i1 + 84 | 0;
   28510       52164 :    HEAP32[i4 + 24 >> 2] = HEAP32[i7 >> 2];
   28511       52164 :    HEAP32[i7 >> 2] = i4;
   28512       52164 :    STACKTOP = i3;
   28513       52164 :    return;
   28514       52164 :   }
   28515       52164 :  case 38:
   28516       52164 :   {
   28517       52164 :    i7 = i1 + 84 | 0;
   28518       52164 :    HEAP32[i4 + 8 >> 2] = HEAP32[i7 >> 2];
   28519       52164 :    HEAP32[i7 >> 2] = i4;
   28520       52164 :    STACKTOP = i3;
   28521       52164 :    return;
   28522       52164 :   }
   28523       52164 :  case 9:
   28524       52164 :   {
   28525       52164 :    i7 = i1 + 84 | 0;
   28526       52164 :    HEAP32[i4 + 72 >> 2] = HEAP32[i7 >> 2];
   28527       52164 :    HEAP32[i7 >> 2] = i4;
   28528       52164 :    STACKTOP = i3;
   28529       52164 :    return;
   28530       52164 :   }
   28531       52164 :  default:
   28532       52164 :   {
   28533       52164 :    STACKTOP = i3;
   28534       52164 :    return;
   28535       52164 :   }
   28536       52164 :  }
   28537       52164 :  HEAP8[i2] = HEAPU8[i2] | 0 | 4;
   28538       52164 :  i7 = i1 + 16 | 0;
   28539       52164 :  HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + i4;
   28540       52164 :  STACKTOP = i3;
   28541       52164 :  return;
   28542       52164 : }
   28543           1 : function _lua_upvaluejoin(i1, i9, i7, i6, i3) {
   28544           0 :  i1 = i1 | 0;
   28545           0 :  i9 = i9 | 0;
   28546           0 :  i7 = i7 | 0;
   28547           0 :  i6 = i6 | 0;
   28548           0 :  i3 = i3 | 0;
   28549           0 :  var i2 = 0, i4 = 0, i5 = 0, i8 = 0, i10 = 0;
   28550           0 :  i2 = STACKTOP;
   28551           0 :  i5 = HEAP32[i1 + 16 >> 2] | 0;
   28552           0 :  do {
   28553           0 :   if ((i9 | 0) <= 0) {
   28554           0 :    if (!((i9 | 0) < -1000999)) {
   28555           0 :     i8 = (HEAP32[i1 + 8 >> 2] | 0) + (i9 << 4) | 0;
   28556           0 :     break;
   28557           0 :    }
   28558           0 :    if ((i9 | 0) == -1001e3) {
   28559           0 :     i8 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   28560           0 :     break;
   28561           0 :    }
   28562           0 :    i10 = -1001e3 - i9 | 0;
   28563           0 :    i9 = HEAP32[i5 >> 2] | 0;
   28564           0 :    if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i9 >> 2] | 0, (i10 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) {
   28565           0 :     i8 = i8 + (i10 + -1 << 4) + 16 | 0;
   28566           0 :    } else {
   28567           0 :     i8 = 5192;
   28568           0 :    }
   28569           0 :   } else {
   28570           0 :    i8 = (HEAP32[i5 >> 2] | 0) + (i9 << 4) | 0;
   28571           0 :    i8 = i8 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
   28572           0 :   }
   28573           0 :  } while (0);
   28574           0 :  i8 = HEAP32[i8 >> 2] | 0;
   28575           0 :  i7 = i8 + 16 + (i7 + -1 << 2) | 0;
   28576           0 :  do {
   28577           0 :   if ((i6 | 0) <= 0) {
   28578           0 :    if (!((i6 | 0) < -1000999)) {
   28579           0 :     i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
   28580           0 :     break;
   28581           0 :    }
   28582           0 :    if ((i6 | 0) == -1001e3) {
   28583           0 :     i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   28584           0 :     break;
   28585           0 :    }
   28586           0 :    i6 = -1001e3 - i6 | 0;
   28587           0 :    i5 = HEAP32[i5 >> 2] | 0;
   28588           0 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   28589           0 :     i4 = i4 + (i6 + -1 << 4) + 16 | 0;
   28590           0 :    } else {
   28591           0 :     i4 = 5192;
   28592           0 :    }
   28593           0 :   } else {
   28594           0 :    i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
   28595           0 :    i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   28596           0 :   }
   28597           0 :  } while (0);
   28598           0 :  i3 = (HEAP32[i4 >> 2] | 0) + 16 + (i3 + -1 << 2) | 0;
   28599           0 :  HEAP32[i7 >> 2] = HEAP32[i3 >> 2];
   28600           0 :  i3 = HEAP32[i3 >> 2] | 0;
   28601           0 :  if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
   28602           0 :   STACKTOP = i2;
   28603           0 :   return;
   28604           0 :  }
   28605           0 :  if ((HEAP8[i8 + 5 | 0] & 4) == 0) {
   28606           0 :   STACKTOP = i2;
   28607           0 :   return;
   28608           0 :  }
   28609           0 :  _luaC_barrier_(i1, i8, i3);
   28610           0 :  STACKTOP = i2;
   28611           0 :  return;
   28612           1 : }
   28613           1 : function _lua_upvalueid(i5, i7, i1) {
   28614           0 :  i5 = i5 | 0;
   28615           0 :  i7 = i7 | 0;
   28616           0 :  i1 = i1 | 0;
   28617           0 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0;
   28618           0 :  i2 = STACKTOP;
   28619           0 :  i4 = HEAP32[i5 + 16 >> 2] | 0;
   28620           0 :  i6 = (i7 | 0) > 0;
   28621           0 :  do {
   28622           0 :   if (!i6) {
   28623           0 :    if (!((i7 | 0) < -1000999)) {
   28624           0 :     i8 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0;
   28625           0 :     break;
   28626           0 :    }
   28627           0 :    if ((i7 | 0) == -1001e3) {
   28628           0 :     i8 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0;
   28629           0 :     break;
   28630           0 :    }
   28631           0 :    i10 = -1001e3 - i7 | 0;
   28632           0 :    i9 = HEAP32[i4 >> 2] | 0;
   28633           0 :    if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i9 >> 2] | 0, (i10 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) {
   28634           0 :     i8 = i8 + (i10 + -1 << 4) + 16 | 0;
   28635           0 :    } else {
   28636           0 :     i8 = 5192;
   28637           0 :    }
   28638           0 :   } else {
   28639           0 :    i8 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0;
   28640           0 :    i8 = i8 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
   28641           0 :   }
   28642           0 :  } while (0);
   28643           0 :  i9 = HEAP32[i8 + 8 >> 2] & 63;
   28644           0 :  if ((i9 | 0) == 38) {
   28645           0 :   i10 = (HEAP32[i8 >> 2] | 0) + (i1 + -1 << 4) + 16 | 0;
   28646           0 :   STACKTOP = i2;
   28647           0 :   return i10 | 0;
   28648           0 :  } else if ((i9 | 0) == 6) {
   28649           0 :   do {
   28650           0 :    if (!i6) {
   28651           0 :     if (!((i7 | 0) < -1000999)) {
   28652           0 :      i3 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0;
   28653           0 :      break;
   28654           0 :     }
   28655           0 :     if ((i7 | 0) == -1001e3) {
   28656           0 :      i3 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0;
   28657           0 :      break;
   28658           0 :     }
   28659           0 :     i5 = -1001e3 - i7 | 0;
   28660           0 :     i4 = HEAP32[i4 >> 2] | 0;
   28661           0 :     if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   28662           0 :      i3 = i3 + (i5 + -1 << 4) + 16 | 0;
   28663           0 :     } else {
   28664           0 :      i3 = 5192;
   28665           0 :     }
   28666           0 :    } else {
   28667           0 :     i3 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0;
   28668           0 :     i3 = i3 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   28669           0 :    }
   28670           0 :   } while (0);
   28671           0 :   i10 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 + (i1 + -1 << 2) >> 2] | 0;
   28672           0 :   STACKTOP = i2;
   28673           0 :   return i10 | 0;
   28674           0 :  } else {
   28675           0 :   i10 = 0;
   28676           0 :   STACKTOP = i2;
   28677           0 :   return i10 | 0;
   28678           0 :  }
   28679           0 :  return 0;
   28680           1 : }
   28681           9 : function _lua_rawequal(i2, i6, i4) {
   28682           9 :  i2 = i2 | 0;
   28683           9 :  i6 = i6 | 0;
   28684           9 :  i4 = i4 | 0;
   28685           9 :  var i1 = 0, i3 = 0, i5 = 0, i7 = 0;
   28686           9 :  i1 = STACKTOP;
   28687           9 :  i3 = HEAP32[i2 + 16 >> 2] | 0;
   28688           9 :  do {
   28689           9 :   if ((i6 | 0) <= 0) {
   28690           9 :    if (!((i6 | 0) < -1000999)) {
   28691           9 :     i5 = (HEAP32[i2 + 8 >> 2] | 0) + (i6 << 4) | 0;
   28692           9 :     break;
   28693           9 :    }
   28694           9 :    if ((i6 | 0) == -1001e3) {
   28695           9 :     i5 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   28696           9 :     break;
   28697           9 :    }
   28698           9 :    i7 = -1001e3 - i6 | 0;
   28699           9 :    i6 = HEAP32[i3 >> 2] | 0;
   28700           9 :    if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i7 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
   28701           9 :     i5 = i5 + (i7 + -1 << 4) + 16 | 0;
   28702           9 :    } else {
   28703           9 :     i5 = 5192;
   28704           9 :    }
   28705           9 :   } else {
   28706           9 :    i5 = (HEAP32[i3 >> 2] | 0) + (i6 << 4) | 0;
   28707           9 :    i5 = i5 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
   28708           9 :   }
   28709           9 :  } while (0);
   28710           9 :  do {
   28711           9 :   if ((i4 | 0) <= 0) {
   28712           9 :    if (!((i4 | 0) < -1000999)) {
   28713           9 :     i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
   28714           9 :     break;
   28715           9 :    }
   28716           9 :    if ((i4 | 0) == -1001e3) {
   28717           9 :     i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   28718           9 :     break;
   28719           9 :    }
   28720           9 :    i2 = -1001e3 - i4 | 0;
   28721           9 :    i3 = HEAP32[i3 >> 2] | 0;
   28722           9 :    if ((HEAP32[i3 + 8 >> 2] | 0) == 22) {
   28723           9 :     i7 = 0;
   28724           9 :     STACKTOP = i1;
   28725           9 :     return i7 | 0;
   28726           9 :    }
   28727           9 :    i3 = HEAP32[i3 >> 2] | 0;
   28728           9 :    if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) {
   28729           9 :     i7 = 0;
   28730           9 :     STACKTOP = i1;
   28731           9 :     return i7 | 0;
   28732           9 :    } else {
   28733           9 :     i2 = i3 + (i2 + -1 << 4) + 16 | 0;
   28734           9 :     break;
   28735           9 :    }
   28736           9 :   } else {
   28737           9 :    i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0;
   28738           9 :    i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   28739           9 :   }
   28740           9 :  } while (0);
   28741           9 :  if ((i5 | 0) == 5192 | (i2 | 0) == 5192) {
   28742           9 :   i7 = 0;
   28743           9 :   STACKTOP = i1;
   28744           9 :   return i7 | 0;
   28745           9 :  }
   28746           9 :  if ((HEAP32[i5 + 8 >> 2] | 0) == (HEAP32[i2 + 8 >> 2] | 0)) {
   28747           9 :   i2 = (_luaV_equalobj_(0, i5, i2) | 0) != 0;
   28748           9 :  } else {
   28749           9 :   i2 = 0;
   28750           9 :  }
   28751           9 :  i7 = i2 & 1;
   28752           9 :  STACKTOP = i1;
   28753           9 :  return i7 | 0;
   28754           9 : }
   28755           1 : function _luaO_chunkid(i1, i4, i6) {
   28756           0 :  i1 = i1 | 0;
   28757           0 :  i4 = i4 | 0;
   28758           0 :  i6 = i6 | 0;
   28759           0 :  var i2 = 0, i3 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
   28760           0 :  i2 = STACKTOP;
   28761           0 :  i3 = _strlen(i4 | 0) | 0;
   28762           0 :  i5 = HEAP8[i4] | 0;
   28763           0 :  if (i5 << 24 >> 24 == 64) {
   28764           0 :   if (i3 >>> 0 > i6 >>> 0) {
   28765           0 :    HEAP8[i1 + 0 | 0] = HEAP8[5552 | 0] | 0;
   28766           0 :    HEAP8[i1 + 1 | 0] = HEAP8[5553 | 0] | 0;
   28767           0 :    HEAP8[i1 + 2 | 0] = HEAP8[5554 | 0] | 0;
   28768           0 :    _memcpy(i1 + 3 | 0, i4 + (4 - i6 + i3) | 0, i6 + -3 | 0) | 0;
   28769           0 :    STACKTOP = i2;
   28770           0 :    return;
   28771           0 :   } else {
   28772           0 :    _memcpy(i1 | 0, i4 + 1 | 0, i3 | 0) | 0;
   28773           0 :    STACKTOP = i2;
   28774           0 :    return;
   28775           0 :   }
   28776           0 :  } else if (i5 << 24 >> 24 == 61) {
   28777           0 :   i4 = i4 + 1 | 0;
   28778           0 :   if (i3 >>> 0 > i6 >>> 0) {
   28779           0 :    i9 = i6 + -1 | 0;
   28780           0 :    _memcpy(i1 | 0, i4 | 0, i9 | 0) | 0;
   28781           0 :    HEAP8[i1 + i9 | 0] = 0;
   28782           0 :    STACKTOP = i2;
   28783           0 :    return;
   28784           0 :   } else {
   28785           0 :    _memcpy(i1 | 0, i4 | 0, i3 | 0) | 0;
   28786           0 :    STACKTOP = i2;
   28787           0 :    return;
   28788           0 :   }
   28789           0 :  } else {
   28790           0 :   i5 = _strchr(i4, 10) | 0;
   28791           0 :   i9 = i1 + 0 | 0;
   28792           0 :   i8 = 5560 | 0;
   28793           0 :   i7 = i9 + 9 | 0;
   28794           0 :   do {
   28795           0 :    HEAP8[i9] = HEAP8[i8] | 0;
   28796           0 :    i9 = i9 + 1 | 0;
   28797           0 :    i8 = i8 + 1 | 0;
   28798           0 :   } while ((i9 | 0) < (i7 | 0));
   28799           0 :   i7 = i1 + 9 | 0;
   28800           0 :   i6 = i6 + -15 | 0;
   28801           0 :   i8 = (i5 | 0) == 0;
   28802           0 :   if (i3 >>> 0 < i6 >>> 0 & i8) {
   28803           0 :    _memcpy(i7 | 0, i4 | 0, i3 | 0) | 0;
   28804           0 :    i3 = i3 + 9 | 0;
   28805           0 :   } else {
   28806           0 :    if (!i8) {
   28807           0 :     i3 = i5 - i4 | 0;
   28808           0 :    }
   28809           0 :    i3 = i3 >>> 0 > i6 >>> 0 ? i6 : i3;
   28810           0 :    _memcpy(i7 | 0, i4 | 0, i3 | 0) | 0;
   28811           0 :    i9 = i1 + (i3 + 9) | 0;
   28812           0 :    HEAP8[i9 + 0 | 0] = HEAP8[5552 | 0] | 0;
   28813           0 :    HEAP8[i9 + 1 | 0] = HEAP8[5553 | 0] | 0;
   28814           0 :    HEAP8[i9 + 2 | 0] = HEAP8[5554 | 0] | 0;
   28815           0 :    i3 = i3 + 12 | 0;
   28816           0 :   }
   28817           0 :   i9 = i1 + i3 | 0;
   28818           0 :   HEAP8[i9 + 0 | 0] = HEAP8[5576 | 0] | 0;
   28819           0 :   HEAP8[i9 + 1 | 0] = HEAP8[5577 | 0] | 0;
   28820           0 :   HEAP8[i9 + 2 | 0] = HEAP8[5578 | 0] | 0;
   28821           0 :   STACKTOP = i2;
   28822           0 :   return;
   28823           0 :  }
   28824           1 : }
   28825           4 : function _luaS_resize(i4, i1) {
   28826           4 :  i4 = i4 | 0;
   28827           4 :  i1 = i1 | 0;
   28828           4 :  var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   28829           4 :  i3 = STACKTOP;
   28830           4 :  i5 = HEAP32[i4 + 12 >> 2] | 0;
   28831           4 :  i2 = i5 + 24 | 0;
   28832           4 :  _luaC_runtilstate(i4, -5);
   28833           4 :  i5 = i5 + 32 | 0;
   28834           4 :  i8 = HEAP32[i5 >> 2] | 0;
   28835           4 :  L1 : do {
   28836           4 :   if ((i8 | 0) < (i1 | 0)) {
   28837           4 :    if ((i1 + 1 | 0) >>> 0 > 1073741823) {
   28838           4 :     _luaM_toobig(i4);
   28839           4 :    }
   28840           4 :    i7 = _luaM_realloc_(i4, HEAP32[i2 >> 2] | 0, i8 << 2, i1 << 2) | 0;
   28841           4 :    HEAP32[i2 >> 2] = i7;
   28842           4 :    i6 = HEAP32[i5 >> 2] | 0;
   28843           4 :    if ((i6 | 0) < (i1 | 0)) {
   28844           4 :     i8 = i6;
   28845           4 :     while (1) {
   28846           4 :      HEAP32[i7 + (i8 << 2) >> 2] = 0;
   28847           4 :      i8 = i8 + 1 | 0;
   28848           4 :      if ((i8 | 0) == (i1 | 0)) {
   28849           4 :       i8 = i6;
   28850           4 :       break L1;
   28851           4 :      }
   28852           4 :      i7 = HEAP32[i2 >> 2] | 0;
   28853           4 :     }
   28854           4 :    } else {
   28855           4 :     i8 = i6;
   28856           4 :    }
   28857           4 :   }
   28858           4 :  } while (0);
   28859           4 :  if ((i8 | 0) > 0) {
   28860           4 :   i6 = i1 + -1 | 0;
   28861           4 :   i7 = 0;
   28862           4 :   do {
   28863           4 :    i10 = (HEAP32[i2 >> 2] | 0) + (i7 << 2) | 0;
   28864           4 :    i9 = HEAP32[i10 >> 2] | 0;
   28865           4 :    HEAP32[i10 >> 2] = 0;
   28866           4 :    if ((i9 | 0) != 0) {
   28867           4 :     while (1) {
   28868           4 :      i8 = HEAP32[i9 >> 2] | 0;
   28869           4 :      i10 = HEAP32[i9 + 8 >> 2] & i6;
   28870           4 :      HEAP32[i9 >> 2] = HEAP32[(HEAP32[i2 >> 2] | 0) + (i10 << 2) >> 2];
   28871           4 :      HEAP32[(HEAP32[i2 >> 2] | 0) + (i10 << 2) >> 2] = i9;
   28872           4 :      i10 = i9 + 5 | 0;
   28873           4 :      HEAP8[i10] = HEAP8[i10] & 191;
   28874           4 :      if ((i8 | 0) == 0) {
   28875           4 :       break;
   28876           4 :      } else {
   28877           4 :       i9 = i8;
   28878           4 :      }
   28879           4 :     }
   28880           4 :     i8 = HEAP32[i5 >> 2] | 0;
   28881           4 :    }
   28882           4 :    i7 = i7 + 1 | 0;
   28883           4 :   } while ((i7 | 0) < (i8 | 0));
   28884           4 :  }
   28885           4 :  if ((i8 | 0) <= (i1 | 0)) {
   28886           4 :   HEAP32[i5 >> 2] = i1;
   28887           4 :   STACKTOP = i3;
   28888           4 :   return;
   28889           4 :  }
   28890           4 :  if ((i1 + 1 | 0) >>> 0 > 1073741823) {
   28891           4 :   _luaM_toobig(i4);
   28892           4 :  }
   28893           4 :  HEAP32[i2 >> 2] = _luaM_realloc_(i4, HEAP32[i2 >> 2] | 0, i8 << 2, i1 << 2) | 0;
   28894           4 :  HEAP32[i5 >> 2] = i1;
   28895           4 :  STACKTOP = i3;
   28896           4 :  return;
   28897           4 : }
   28898      285989 : function _luaD_poscall(i6, i7) {
   28899      285989 :  i6 = i6 | 0;
   28900      285989 :  i7 = i7 | 0;
   28901      285989 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
   28902      285989 :  i1 = STACKTOP;
   28903      285989 :  i4 = i6 + 16 | 0;
   28904      285989 :  i3 = HEAP32[i4 >> 2] | 0;
   28905      285989 :  i5 = HEAPU8[i6 + 40 | 0] | 0;
   28906      285989 :  if ((i5 & 6 | 0) == 0) {
   28907      285989 :   i8 = i3 + 8 | 0;
   28908      285989 :  } else {
   28909      285989 :   if ((i5 & 2 | 0) != 0) {
   28910      285989 :    i8 = i6 + 28 | 0;
   28911      285989 :    i7 = i7 - (HEAP32[i8 >> 2] | 0) | 0;
   28912      285989 :    _luaD_hook(i6, 1, -1);
   28913      285989 :    i7 = (HEAP32[i8 >> 2] | 0) + i7 | 0;
   28914      285989 :   }
   28915      285989 :   i8 = i3 + 8 | 0;
   28916      285989 :   HEAP32[i6 + 20 >> 2] = HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2];
   28917      285989 :  }
   28918      285989 :  i5 = HEAP32[i3 >> 2] | 0;
   28919      285989 :  i9 = HEAP16[i3 + 16 >> 1] | 0;
   28920      285989 :  i3 = i9 << 16 >> 16;
   28921      285989 :  HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
   28922      285989 :  i4 = i6 + 8 | 0;
   28923      285989 :  if (i9 << 16 >> 16 == 0) {
   28924      285989 :   i9 = i5;
   28925      285989 :   HEAP32[i4 >> 2] = i9;
   28926      285989 :   i9 = i3 + 1 | 0;
   28927      285989 :   STACKTOP = i1;
   28928      285989 :   return i9 | 0;
   28929      285989 :  } else {
   28930      285989 :   i6 = i3;
   28931      285989 :  }
   28932      285989 :  while (1) {
   28933      285989 :   if (!(i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0)) {
   28934      285989 :    break;
   28935      285989 :   }
   28936      285989 :   i8 = i5 + 16 | 0;
   28937      285989 :   i11 = i7;
   28938      285989 :   i10 = HEAP32[i11 + 4 >> 2] | 0;
   28939      285989 :   i9 = i5;
   28940      285989 :   HEAP32[i9 >> 2] = HEAP32[i11 >> 2];
   28941      285989 :   HEAP32[i9 + 4 >> 2] = i10;
   28942      285989 :   HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
   28943      285989 :   i6 = i6 + -1 | 0;
   28944      285989 :   if ((i6 | 0) == 0) {
   28945      285989 :    i2 = 12;
   28946      285989 :    break;
   28947      285989 :   } else {
   28948      285989 :    i7 = i7 + 16 | 0;
   28949      285989 :    i5 = i8;
   28950      285989 :   }
   28951      285989 :  }
   28952      285989 :  if ((i2 | 0) == 12) {
   28953      285989 :   HEAP32[i4 >> 2] = i8;
   28954      285989 :   i11 = i3 + 1 | 0;
   28955      285989 :   STACKTOP = i1;
   28956      285989 :   return i11 | 0;
   28957      285989 :  }
   28958      285989 :  if ((i6 | 0) > 0) {
   28959      285989 :   i2 = i6;
   28960      285989 :   i7 = i5;
   28961      285989 :  } else {
   28962      285989 :   i11 = i5;
   28963      285989 :   HEAP32[i4 >> 2] = i11;
   28964      285989 :   i11 = i3 + 1 | 0;
   28965      285989 :   STACKTOP = i1;
   28966      285989 :   return i11 | 0;
   28967      285989 :  }
   28968      285989 :  while (1) {
   28969      285989 :   i2 = i2 + -1 | 0;
   28970      285989 :   HEAP32[i7 + 8 >> 2] = 0;
   28971      285989 :   if ((i2 | 0) <= 0) {
   28972      285989 :    break;
   28973      285989 :   } else {
   28974      285989 :    i7 = i7 + 16 | 0;
   28975      285989 :   }
   28976      285989 :  }
   28977      285989 :  i11 = i5 + (i6 << 4) | 0;
   28978      285989 :  HEAP32[i4 >> 2] = i11;
   28979      285989 :  i11 = i3 + 1 | 0;
   28980      285989 :  STACKTOP = i1;
   28981      285989 :  return i11 | 0;
   28982      285989 : }
   28983           1 : function _lua_rawset(i1, i4) {
   28984           0 :  i1 = i1 | 0;
   28985           0 :  i4 = i4 | 0;
   28986           0 :  var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
   28987           0 :  i2 = STACKTOP;
   28988           0 :  i5 = HEAP32[i1 + 16 >> 2] | 0;
   28989           0 :  do {
   28990           0 :   if ((i4 | 0) <= 0) {
   28991           0 :    if (!((i4 | 0) < -1000999)) {
   28992           0 :     i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i4 << 4) | 0;
   28993           0 :     break;
   28994           0 :    }
   28995           0 :    if ((i4 | 0) == -1001e3) {
   28996           0 :     i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   28997           0 :     break;
   28998           0 :    }
   28999           0 :    i4 = -1001e3 - i4 | 0;
   29000           0 :    i5 = HEAP32[i5 >> 2] | 0;
   29001           0 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   29002           0 :     i5 = i3 + (i4 + -1 << 4) + 16 | 0;
   29003           0 :    } else {
   29004           0 :     i5 = 5192;
   29005           0 :    }
   29006           0 :   } else {
   29007           0 :    i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0;
   29008           0 :    i5 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   29009           0 :   }
   29010           0 :  } while (0);
   29011           0 :  i4 = i1 + 8 | 0;
   29012           0 :  i6 = HEAP32[i4 >> 2] | 0;
   29013           0 :  i3 = _luaH_set(i1, HEAP32[i5 >> 2] | 0, i6 + -32 | 0) | 0;
   29014           0 :  i9 = i6 + -16 | 0;
   29015           0 :  i8 = HEAP32[i9 + 4 >> 2] | 0;
   29016           0 :  i7 = i3;
   29017           0 :  HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
   29018           0 :  HEAP32[i7 + 4 >> 2] = i8;
   29019           0 :  HEAP32[i3 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
   29020           0 :  HEAP8[(HEAP32[i5 >> 2] | 0) + 6 | 0] = 0;
   29021           0 :  i3 = HEAP32[i4 >> 2] | 0;
   29022           0 :  if ((HEAP32[i3 + -8 >> 2] & 64 | 0) == 0) {
   29023           0 :   i9 = i3;
   29024           0 :   i9 = i9 + -32 | 0;
   29025           0 :   HEAP32[i4 >> 2] = i9;
   29026           0 :   STACKTOP = i2;
   29027           0 :   return;
   29028           0 :  }
   29029           0 :  if ((HEAP8[(HEAP32[i3 + -16 >> 2] | 0) + 5 | 0] & 3) == 0) {
   29030           0 :   i9 = i3;
   29031           0 :   i9 = i9 + -32 | 0;
   29032           0 :   HEAP32[i4 >> 2] = i9;
   29033           0 :   STACKTOP = i2;
   29034           0 :   return;
   29035           0 :  }
   29036           0 :  i5 = HEAP32[i5 >> 2] | 0;
   29037           0 :  if ((HEAP8[i5 + 5 | 0] & 4) == 0) {
   29038           0 :   i9 = i3;
   29039           0 :   i9 = i9 + -32 | 0;
   29040           0 :   HEAP32[i4 >> 2] = i9;
   29041           0 :   STACKTOP = i2;
   29042           0 :   return;
   29043           0 :  }
   29044           0 :  _luaC_barrierback_(i1, i5);
   29045           0 :  i9 = HEAP32[i4 >> 2] | 0;
   29046           0 :  i9 = i9 + -32 | 0;
   29047           0 :  HEAP32[i4 >> 2] = i9;
   29048           0 :  STACKTOP = i2;
   29049           0 :  return;
   29050           1 : }
   29051           8 : function _saveSetjmp(i4, i3, i1) {
   29052           8 :  i4 = i4 | 0;
   29053           8 :  i3 = i3 | 0;
   29054           8 :  i1 = i1 | 0;
   29055           8 :  var i2 = 0;
   29056           8 :  setjmpId = setjmpId + 1 | 0;
   29057           8 :  HEAP32[i4 >> 2] = setjmpId;
   29058           8 :  while ((i2 | 0) < 40) {
   29059           8 :   if ((HEAP32[i1 + (i2 << 2) >> 2] | 0) == 0) {
   29060           8 :    HEAP32[i1 + (i2 << 2) >> 2] = setjmpId;
   29061           8 :    HEAP32[i1 + ((i2 << 2) + 4) >> 2] = i3;
   29062           8 :    HEAP32[i1 + ((i2 << 2) + 8) >> 2] = 0;
   29063           8 :    return 0;
   29064           8 :   }
   29065           8 :   i2 = i2 + 2 | 0;
   29066           8 :  }
   29067           8 :  _putchar(116);
   29068           8 :  _putchar(111);
   29069           8 :  _putchar(111);
   29070           8 :  _putchar(32);
   29071           8 :  _putchar(109);
   29072           8 :  _putchar(97);
   29073           8 :  _putchar(110);
   29074           8 :  _putchar(121);
   29075           8 :  _putchar(32);
   29076           8 :  _putchar(115);
   29077           8 :  _putchar(101);
   29078           8 :  _putchar(116);
   29079           8 :  _putchar(106);
   29080           8 :  _putchar(109);
   29081           8 :  _putchar(112);
   29082           8 :  _putchar(115);
   29083           8 :  _putchar(32);
   29084           8 :  _putchar(105);
   29085           8 :  _putchar(110);
   29086           8 :  _putchar(32);
   29087           8 :  _putchar(97);
   29088           8 :  _putchar(32);
   29089           8 :  _putchar(102);
   29090           8 :  _putchar(117);
   29091           8 :  _putchar(110);
   29092           8 :  _putchar(99);
   29093           8 :  _putchar(116);
   29094           8 :  _putchar(105);
   29095           8 :  _putchar(111);
   29096           8 :  _putchar(110);
   29097           8 :  _putchar(32);
   29098           8 :  _putchar(99);
   29099           8 :  _putchar(97);
   29100           8 :  _putchar(108);
   29101           8 :  _putchar(108);
   29102           8 :  _putchar(44);
   29103           8 :  _putchar(32);
   29104           8 :  _putchar(98);
   29105           8 :  _putchar(117);
   29106           8 :  _putchar(105);
   29107           8 :  _putchar(108);
   29108           8 :  _putchar(100);
   29109           8 :  _putchar(32);
   29110           8 :  _putchar(119);
   29111           8 :  _putchar(105);
   29112           8 :  _putchar(116);
   29113           8 :  _putchar(104);
   29114           8 :  _putchar(32);
   29115           8 :  _putchar(97);
   29116           8 :  _putchar(32);
   29117           8 :  _putchar(104);
   29118           8 :  _putchar(105);
   29119           8 :  _putchar(103);
   29120           8 :  _putchar(104);
   29121           8 :  _putchar(101);
   29122           8 :  _putchar(114);
   29123           8 :  _putchar(32);
   29124           8 :  _putchar(118);
   29125           8 :  _putchar(97);
   29126           8 :  _putchar(108);
   29127           8 :  _putchar(117);
   29128           8 :  _putchar(101);
   29129           8 :  _putchar(32);
   29130           8 :  _putchar(102);
   29131           8 :  _putchar(111);
   29132           8 :  _putchar(114);
   29133           8 :  _putchar(32);
   29134           8 :  _putchar(77);
   29135           8 :  _putchar(65);
   29136           8 :  _putchar(88);
   29137           8 :  _putchar(95);
   29138           8 :  _putchar(83);
   29139           8 :  _putchar(69);
   29140           8 :  _putchar(84);
   29141           8 :  _putchar(74);
   29142           8 :  _putchar(77);
   29143           8 :  _putchar(80);
   29144           8 :  _putchar(83);
   29145           8 :  _putchar(10);
   29146           8 :  abort(0);
   29147           8 :  return 0;
   29148           8 : }
   29149           1 : function _lua_newthread(i5) {
   29150           0 :  i5 = i5 | 0;
   29151           0 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   29152           0 :  i1 = STACKTOP;
   29153           0 :  i3 = i5 + 12 | 0;
   29154           0 :  if ((HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   29155           0 :   _luaC_step(i5);
   29156           0 :  }
   29157           0 :  i2 = _luaC_newobj(i5, 8, 112, 0, 0) | 0;
   29158           0 :  i6 = i5 + 8 | 0;
   29159           0 :  i4 = HEAP32[i6 >> 2] | 0;
   29160           0 :  HEAP32[i4 >> 2] = i2;
   29161           0 :  HEAP32[i4 + 8 >> 2] = 72;
   29162           0 :  HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
   29163           0 :  HEAP32[i2 + 12 >> 2] = HEAP32[i3 >> 2];
   29164           0 :  i6 = i2 + 28 | 0;
   29165           0 :  HEAP32[i6 >> 2] = 0;
   29166           0 :  i4 = i2 + 16 | 0;
   29167           0 :  HEAP32[i4 >> 2] = 0;
   29168           0 :  i3 = i2 + 32 | 0;
   29169           0 :  HEAP32[i3 >> 2] = 0;
   29170           0 :  HEAP32[i2 + 64 >> 2] = 0;
   29171           0 :  HEAP16[i2 + 38 >> 1] = 0;
   29172           0 :  i9 = i2 + 52 | 0;
   29173           0 :  HEAP32[i9 >> 2] = 0;
   29174           0 :  i8 = i2 + 40 | 0;
   29175           0 :  HEAP8[i8] = 0;
   29176           0 :  i10 = i2 + 44 | 0;
   29177           0 :  HEAP32[i10 >> 2] = 0;
   29178           0 :  HEAP8[i2 + 41 | 0] = 1;
   29179           0 :  i7 = i2 + 48 | 0;
   29180           0 :  HEAP32[i7 >> 2] = 0;
   29181           0 :  HEAP32[i2 + 56 >> 2] = 0;
   29182           0 :  HEAP16[i2 + 36 >> 1] = 1;
   29183           0 :  HEAP8[i2 + 6 | 0] = 0;
   29184           0 :  HEAP32[i2 + 68 >> 2] = 0;
   29185           0 :  HEAP8[i8] = HEAP8[i5 + 40 | 0] | 0;
   29186           0 :  i8 = HEAP32[i5 + 44 >> 2] | 0;
   29187           0 :  HEAP32[i10 >> 2] = i8;
   29188           0 :  HEAP32[i9 >> 2] = HEAP32[i5 + 52 >> 2];
   29189           0 :  HEAP32[i7 >> 2] = i8;
   29190           0 :  i5 = _luaM_realloc_(i5, 0, 0, 640) | 0;
   29191           0 :  HEAP32[i6 >> 2] = i5;
   29192           0 :  HEAP32[i3 >> 2] = 40;
   29193           0 :  i6 = 0;
   29194           0 :  do {
   29195           0 :   HEAP32[i5 + (i6 << 4) + 8 >> 2] = 0;
   29196           0 :   i6 = i6 + 1 | 0;
   29197           0 :  } while ((i6 | 0) != 40);
   29198           0 :  HEAP32[i2 + 24 >> 2] = i5 + ((HEAP32[i3 >> 2] | 0) + -5 << 4);
   29199           0 :  i10 = i2 + 72 | 0;
   29200           0 :  HEAP32[i2 + 80 >> 2] = 0;
   29201           0 :  HEAP32[i2 + 84 >> 2] = 0;
   29202           0 :  HEAP8[i2 + 90 | 0] = 0;
   29203           0 :  HEAP32[i10 >> 2] = i5;
   29204           0 :  HEAP32[i2 + 8 >> 2] = i5 + 16;
   29205           0 :  HEAP32[i5 + 8 >> 2] = 0;
   29206           0 :  HEAP32[i2 + 76 >> 2] = i5 + 336;
   29207           0 :  HEAP32[i4 >> 2] = i10;
   29208           0 :  STACKTOP = i1;
   29209           0 :  return i2 | 0;
   29210           1 : }
   29211           1 : function _luaK_self(i2, i5, i3) {
   29212           0 :  i2 = i2 | 0;
   29213           0 :  i5 = i5 | 0;
   29214           0 :  i3 = i3 | 0;
   29215           0 :  var i1 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   29216           0 :  i1 = STACKTOP;
   29217           0 :  _luaK_dischargevars(i2, i5);
   29218           0 :  if ((HEAP32[i5 >> 2] | 0) == 6) {
   29219           0 :   i6 = i5 + 8 | 0;
   29220           0 :   i8 = HEAP32[i6 >> 2] | 0;
   29221           0 :   if ((HEAP32[i5 + 16 >> 2] | 0) != (HEAP32[i5 + 20 >> 2] | 0)) {
   29222           0 :    if ((i8 | 0) < (HEAPU8[i2 + 46 | 0] | 0 | 0)) {
   29223           0 :     i7 = 6;
   29224           0 :    } else {
   29225           0 :     _exp2reg(i2, i5, i8);
   29226           0 :    }
   29227           0 :   }
   29228           0 :  } else {
   29229           0 :   i6 = i5 + 8 | 0;
   29230           0 :   i7 = 6;
   29231           0 :  }
   29232           0 :  if ((i7 | 0) == 6) {
   29233           0 :   _luaK_exp2nextreg(i2, i5);
   29234           0 :  }
   29235           0 :  i8 = HEAP32[i6 >> 2] | 0;
   29236           0 :  if (((HEAP32[i5 >> 2] | 0) == 6 ? (i8 & 256 | 0) == 0 : 0) ? (HEAPU8[i2 + 46 | 0] | 0 | 0) <= (i8 | 0) : 0) {
   29237           0 :   i10 = i2 + 48 | 0;
   29238           0 :   HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
   29239           0 :  }
   29240           0 :  i7 = i2 + 48 | 0;
   29241           0 :  HEAP32[i6 >> 2] = HEAPU8[i7] | 0;
   29242           0 :  HEAP32[i5 >> 2] = 6;
   29243           0 :  i10 = HEAP8[i7] | 0;
   29244           0 :  i5 = (i10 & 255) + 2 | 0;
   29245           0 :  i9 = (HEAP32[i2 >> 2] | 0) + 78 | 0;
   29246           0 :  do {
   29247           0 :   if (i5 >>> 0 > (HEAPU8[i9] | 0) >>> 0) {
   29248           0 :    if (i5 >>> 0 > 249) {
   29249           0 :     _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10536);
   29250           0 :    } else {
   29251           0 :     HEAP8[i9] = i5;
   29252           0 :     i4 = HEAP8[i7] | 0;
   29253           0 :     break;
   29254           0 :    }
   29255           0 :   } else {
   29256           0 :    i4 = i10;
   29257           0 :   }
   29258           0 :  } while (0);
   29259           0 :  HEAP8[i7] = (i4 & 255) + 2;
   29260           0 :  i10 = HEAP32[i6 >> 2] | 0;
   29261           0 :  _luaK_code(i2, i8 << 23 | i10 << 6 | (_luaK_exp2RK(i2, i3) | 0) << 14 | 12) | 0;
   29262           0 :  if ((HEAP32[i3 >> 2] | 0) != 6) {
   29263           0 :   STACKTOP = i1;
   29264           0 :   return;
   29265           0 :  }
   29266           0 :  i3 = HEAP32[i3 + 8 >> 2] | 0;
   29267           0 :  if ((i3 & 256 | 0) != 0) {
   29268           0 :   STACKTOP = i1;
   29269           0 :   return;
   29270           0 :  }
   29271           0 :  if ((HEAPU8[i2 + 46 | 0] | 0 | 0) > (i3 | 0)) {
   29272           0 :   STACKTOP = i1;
   29273           0 :   return;
   29274           0 :  }
   29275           0 :  HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
   29276           0 :  STACKTOP = i1;
   29277           0 :  return;
   29278           1 : }
   29279           8 : function _luaD_rawrunprotected(i10, i9, i11) {
   29280           8 :  i10 = i10 | 0;
   29281           8 :  i9 = i9 | 0;
   29282           8 :  i11 = i11 | 0;
   29283           8 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i12 = 0, i13 = 0;
   29284           8 :  i7 = STACKTOP;
   29285           8 :  STACKTOP = STACKTOP + 176 | 0;
   29286           8 :  i8 = STACKTOP;
   29287           8 :  STACKTOP = STACKTOP + 168 | 0;
   29288           8 :  HEAP32[i8 >> 2] = 0;
   29289           8 :  i6 = i7;
   29290           8 :  i5 = i10 + 38 | 0;
   29291           8 :  i4 = HEAP16[i5 >> 1] | 0;
   29292           8 :  i1 = i6 + 160 | 0;
   29293           8 :  HEAP32[i1 >> 2] = 0;
   29294           8 :  i3 = i10 + 64 | 0;
   29295           8 :  HEAP32[i6 >> 2] = HEAP32[i3 >> 2];
   29296           8 :  HEAP32[i3 >> 2] = i6;
   29297           8 :  _saveSetjmp(i6 + 4 | 0, 1, i8 | 0) | 0;
   29298           8 :  __THREW__ = 0;
   29299           8 :  i13 = __THREW__;
   29300           8 :  __THREW__ = 0;
   29301           8 :  if ((i13 | 0) != 0 & (threwValue | 0) != 0) {
   29302           8 :   i12 = _testSetjmp(HEAP32[i13 >> 2] | 0, i8) | 0;
   29303           8 :   if ((i12 | 0) == 0) {
   29304           8 :    _longjmp(i13 | 0, threwValue | 0);
   29305           8 :   }
   29306           8 :   tempRet0 = threwValue;
   29307           8 :  } else {
   29308           8 :   i12 = -1;
   29309           8 :  }
   29310           8 :  if ((i12 | 0) == 1) {
   29311           8 :   i12 = tempRet0;
   29312           8 :  } else {
   29313           8 :   i12 = 0;
   29314           8 :  }
   29315           8 :  while (1) {
   29316           8 :   if ((i12 | 0) != 0) {
   29317           8 :    i2 = 6;
   29318           8 :    break;
   29319           8 :   }
   29320           8 :   __THREW__ = 0;
   29321           8 :   invoke_vii(i9 | 0, i10 | 0, i11 | 0);
   29322           8 :   i13 = __THREW__;
   29323           8 :   __THREW__ = 0;
   29324           8 :   if ((i13 | 0) != 0 & (threwValue | 0) != 0) {
   29325           8 :    i12 = _testSetjmp(HEAP32[i13 >> 2] | 0, i8) | 0;
   29326           8 :    if ((i12 | 0) == 0) {
   29327           8 :     _longjmp(i13 | 0, threwValue | 0);
   29328           8 :    }
   29329           8 :    tempRet0 = threwValue;
   29330           8 :   } else {
   29331           8 :    i12 = -1;
   29332           8 :   }
   29333           8 :   if ((i12 | 0) == 1) {
   29334           8 :    i12 = tempRet0;
   29335           8 :   } else {
   29336           8 :    break;
   29337           8 :   }
   29338           8 :  }
   29339           8 :  if ((i2 | 0) == 6) {
   29340           8 :   i13 = HEAP32[i6 >> 2] | 0;
   29341           8 :   HEAP32[i3 >> 2] = i13;
   29342           8 :   HEAP16[i5 >> 1] = i4;
   29343           8 :   i13 = HEAP32[i1 >> 2] | 0;
   29344           8 :   STACKTOP = i7;
   29345           8 :   return i13 | 0;
   29346           8 :  }
   29347           8 :  i13 = HEAP32[i6 >> 2] | 0;
   29348           8 :  HEAP32[i3 >> 2] = i13;
   29349           8 :  HEAP16[i5 >> 1] = i4;
   29350           8 :  i13 = HEAP32[i1 >> 2] | 0;
   29351           8 :  STACKTOP = i7;
   29352           8 :  return i13 | 0;
   29353           8 : }
   29354           1 : function _luaB_tonumber(i1) {
   29355           1 :  i1 = i1 | 0;
   29356           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, i10 = 0;
   29357           1 :  i2 = STACKTOP;
   29358           1 :  STACKTOP = STACKTOP + 16 | 0;
   29359           1 :  i3 = i2 + 4 | 0;
   29360           1 :  i4 = i2;
   29361           1 :  do {
   29362           1 :   if ((_lua_type(i1, 2) | 0) >= 1) {
   29363           1 :    i9 = _luaL_checklstring(i1, 1, i4) | 0;
   29364           1 :    i3 = i9 + (HEAP32[i4 >> 2] | 0) | 0;
   29365           1 :    i5 = _luaL_checkinteger(i1, 2) | 0;
   29366           1 :    if (!((i5 + -2 | 0) >>> 0 < 35)) {
   29367           1 :     _luaL_argerror(i1, 2, 9648) | 0;
   29368           1 :    }
   29369           1 :    i10 = _strspn(i9, 9672) | 0;
   29370           1 :    i7 = i9 + i10 | 0;
   29371           1 :    i4 = HEAP8[i7] | 0;
   29372           1 :    if (i4 << 24 >> 24 == 43) {
   29373           1 :     i4 = 0;
   29374           1 :     i7 = i9 + (i10 + 1) | 0;
   29375           1 :    } else if (i4 << 24 >> 24 == 45) {
   29376           1 :     i4 = 1;
   29377           1 :     i7 = i9 + (i10 + 1) | 0;
   29378           1 :    } else {
   29379           1 :     i4 = 0;
   29380           1 :    }
   29381           1 :    if ((_isalnum(HEAPU8[i7] | 0 | 0) | 0) != 0) {
   29382           1 :     d6 = +(i5 | 0);
   29383           1 :     d8 = 0.0;
   29384           1 :     do {
   29385           1 :      i9 = HEAP8[i7] | 0;
   29386           1 :      i10 = i9 & 255;
   29387           1 :      if ((i10 + -48 | 0) >>> 0 < 10) {
   29388           1 :       i9 = (i9 << 24 >> 24) + -48 | 0;
   29389           1 :      } else {
   29390           1 :       i9 = (_toupper(i10 | 0) | 0) + -55 | 0;
   29391           1 :      }
   29392           1 :      if ((i9 | 0) >= (i5 | 0)) {
   29393           1 :       break;
   29394           1 :      }
   29395           1 :      d8 = d6 * d8 + +(i9 | 0);
   29396           1 :      i7 = i7 + 1 | 0;
   29397           1 :     } while ((_isalnum(HEAPU8[i7] | 0 | 0) | 0) != 0);
   29398           1 :     if ((i7 + (_strspn(i7, 9672) | 0) | 0) == (i3 | 0)) {
   29399           1 :      if ((i4 | 0) != 0) {
   29400           1 :       d8 = -d8;
   29401           1 :      }
   29402           1 :      _lua_pushnumber(i1, d8);
   29403           1 :      STACKTOP = i2;
   29404           1 :      return 1;
   29405           1 :     }
   29406           1 :    }
   29407           1 :   } else {
   29408           1 :    d6 = +_lua_tonumberx(i1, 1, i3);
   29409           1 :    if ((HEAP32[i3 >> 2] | 0) == 0) {
   29410           1 :     _luaL_checkany(i1, 1);
   29411           1 :     break;
   29412           1 :    }
   29413           1 :    _lua_pushnumber(i1, d6);
   29414           1 :    STACKTOP = i2;
   29415           1 :    return 1;
   29416           1 :   }
   29417           1 :  } while (0);
   29418           1 :  _lua_pushnil(i1);
   29419           1 :  STACKTOP = i2;
   29420           1 :  return 1;
   29421           1 : }
   29422           9 : function _luaK_storevar(i1, i5, i3) {
   29423           9 :  i1 = i1 | 0;
   29424           9 :  i5 = i5 | 0;
   29425           9 :  i3 = i3 | 0;
   29426           9 :  var i2 = 0, i4 = 0, i6 = 0, i7 = 0;
   29427           9 :  i2 = STACKTOP;
   29428           9 :  i7 = HEAP32[i5 >> 2] | 0;
   29429           9 :  if ((i7 | 0) == 7) {
   29430           9 :   if (((HEAP32[i3 >> 2] | 0) == 6 ? (i6 = HEAP32[i3 + 8 >> 2] | 0, (i6 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0) <= (i6 | 0) : 0) {
   29431           9 :    i7 = i1 + 48 | 0;
   29432           9 :    HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
   29433           9 :   }
   29434           9 :   _exp2reg(i1, i3, HEAP32[i5 + 8 >> 2] | 0);
   29435           9 :   STACKTOP = i2;
   29436           9 :   return;
   29437           9 :  } else if ((i7 | 0) == 9) {
   29438           9 :   i4 = i5 + 8 | 0;
   29439           9 :   i7 = (HEAP8[i4 + 3 | 0] | 0) == 7 ? 10 : 8;
   29440           9 :   i6 = _luaK_exp2RK(i1, i3) | 0;
   29441           9 :   _luaK_code(i1, i6 << 14 | i7 | HEAPU8[i4 + 2 | 0] << 6 | HEAPU16[i4 >> 1] << 23) | 0;
   29442           9 :  } else if ((i7 | 0) == 8) {
   29443           9 :   _luaK_dischargevars(i1, i3);
   29444           9 :   if ((HEAP32[i3 >> 2] | 0) == 6) {
   29445           9 :    i6 = i3 + 8 | 0;
   29446           9 :    i7 = HEAP32[i6 >> 2] | 0;
   29447           9 :    if ((HEAP32[i3 + 16 >> 2] | 0) != (HEAP32[i3 + 20 >> 2] | 0)) {
   29448           9 :     if ((i7 | 0) < (HEAPU8[i1 + 46 | 0] | 0)) {
   29449           9 :      i4 = 12;
   29450           9 :     } else {
   29451           9 :      _exp2reg(i1, i3, i7);
   29452           9 :      i7 = HEAP32[i6 >> 2] | 0;
   29453           9 :     }
   29454           9 :    }
   29455           9 :   } else {
   29456           9 :    i6 = i3 + 8 | 0;
   29457           9 :    i4 = 12;
   29458           9 :   }
   29459           9 :   if ((i4 | 0) == 12) {
   29460           9 :    _luaK_exp2nextreg(i1, i3);
   29461           9 :    i7 = HEAP32[i6 >> 2] | 0;
   29462           9 :   }
   29463           9 :   _luaK_code(i1, i7 << 6 | HEAP32[i5 + 8 >> 2] << 23 | 9) | 0;
   29464           9 :  }
   29465           9 :  if ((HEAP32[i3 >> 2] | 0) != 6) {
   29466           9 :   STACKTOP = i2;
   29467           9 :   return;
   29468           9 :  }
   29469           9 :  i3 = HEAP32[i3 + 8 >> 2] | 0;
   29470           9 :  if ((i3 & 256 | 0) != 0) {
   29471           9 :   STACKTOP = i2;
   29472           9 :   return;
   29473           9 :  }
   29474           9 :  if ((HEAPU8[i1 + 46 | 0] | 0) > (i3 | 0)) {
   29475           9 :   STACKTOP = i2;
   29476           9 :   return;
   29477           9 :  }
   29478           9 :  i7 = i1 + 48 | 0;
   29479           9 :  HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
   29480           9 :  STACKTOP = i2;
   29481           9 :  return;
   29482           9 : }
   29483           1 : function _closegoto(i10, i3, i9) {
   29484           0 :  i10 = i10 | 0;
   29485           0 :  i3 = i3 | 0;
   29486           0 :  i9 = i9 | 0;
   29487           0 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i11 = 0, i12 = 0;
   29488           0 :  i1 = STACKTOP;
   29489           0 :  STACKTOP = STACKTOP + 16 | 0;
   29490           0 :  i7 = i1;
   29491           0 :  i4 = HEAP32[i10 + 48 >> 2] | 0;
   29492           0 :  i6 = HEAP32[i10 + 64 >> 2] | 0;
   29493           0 :  i2 = i6 + 12 | 0;
   29494           0 :  i5 = HEAP32[i2 >> 2] | 0;
   29495           0 :  i8 = HEAP8[i5 + (i3 << 4) + 12 | 0] | 0;
   29496           0 :  if ((i8 & 255) < (HEAPU8[i9 + 12 | 0] | 0)) {
   29497           0 :   i11 = HEAP32[i10 + 52 >> 2] | 0;
   29498           0 :   i12 = HEAP32[i5 + (i3 << 4) + 8 >> 2] | 0;
   29499           0 :   i8 = (HEAP32[(HEAP32[(HEAP32[i4 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i4 + 40 >> 2] | 0) + (i8 & 255) << 1) >> 1] | 0) * 12 | 0) >> 2] | 0) + 16 | 0;
   29500           0 :   HEAP32[i7 >> 2] = (HEAP32[i5 + (i3 << 4) >> 2] | 0) + 16;
   29501           0 :   HEAP32[i7 + 4 >> 2] = i12;
   29502           0 :   HEAP32[i7 + 8 >> 2] = i8;
   29503           0 :   _semerror(i10, _luaO_pushfstring(i11, 6248, i7) | 0);
   29504           0 :  }
   29505           0 :  _luaK_patchlist(i4, HEAP32[i5 + (i3 << 4) + 4 >> 2] | 0, HEAP32[i9 + 4 >> 2] | 0);
   29506           0 :  i4 = i6 + 16 | 0;
   29507           0 :  i5 = (HEAP32[i4 >> 2] | 0) + -1 | 0;
   29508           0 :  if ((i5 | 0) <= (i3 | 0)) {
   29509           0 :   i12 = i5;
   29510           0 :   HEAP32[i4 >> 2] = i12;
   29511           0 :   STACKTOP = i1;
   29512           0 :   return;
   29513           0 :  }
   29514           0 :  do {
   29515           0 :   i12 = HEAP32[i2 >> 2] | 0;
   29516           0 :   i5 = i12 + (i3 << 4) | 0;
   29517           0 :   i3 = i3 + 1 | 0;
   29518           0 :   i12 = i12 + (i3 << 4) | 0;
   29519           0 :   HEAP32[i5 + 0 >> 2] = HEAP32[i12 + 0 >> 2];
   29520           0 :   HEAP32[i5 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
   29521           0 :   HEAP32[i5 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
   29522           0 :   HEAP32[i5 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
   29523           0 :   i5 = (HEAP32[i4 >> 2] | 0) + -1 | 0;
   29524           0 :  } while ((i3 | 0) < (i5 | 0));
   29525           0 :  HEAP32[i4 >> 2] = i5;
   29526           0 :  STACKTOP = i1;
   29527           0 :  return;
   29528           1 : }
   29529          50 : function _luaM_growaux_(i4, i5, i1, i7, i8, i9) {
   29530          50 :  i4 = i4 | 0;
   29531          50 :  i5 = i5 | 0;
   29532          50 :  i1 = i1 | 0;
   29533          50 :  i7 = i7 | 0;
   29534          50 :  i8 = i8 | 0;
   29535          50 :  i9 = i9 | 0;
   29536          50 :  var i2 = 0, i3 = 0, i6 = 0, i10 = 0, i11 = 0;
   29537          50 :  i2 = STACKTOP;
   29538          50 :  STACKTOP = STACKTOP + 16 | 0;
   29539          50 :  i10 = i2;
   29540          50 :  i6 = HEAP32[i1 >> 2] | 0;
   29541          50 :  if ((i6 | 0) >= ((i8 | 0) / 2 | 0 | 0)) {
   29542          50 :   if ((i6 | 0) < (i8 | 0)) {
   29543          50 :    i3 = i8;
   29544          50 :   } else {
   29545          50 :    HEAP32[i10 >> 2] = i9;
   29546          50 :    HEAP32[i10 + 4 >> 2] = i8;
   29547          50 :    _luaG_runerror(i4, 4112, i10);
   29548          50 :   }
   29549          50 :  } else {
   29550          50 :   i3 = i6 << 1;
   29551          50 :   i3 = (i3 | 0) < 4 ? 4 : i3;
   29552          50 :  }
   29553          50 :  if ((i3 + 1 | 0) >>> 0 > (4294967293 / (i7 >>> 0) | 0) >>> 0) {
   29554          50 :   _luaM_toobig(i4);
   29555          50 :  }
   29556          50 :  i6 = Math_imul(i6, i7) | 0;
   29557          50 :  i8 = Math_imul(i3, i7) | 0;
   29558          50 :  i9 = HEAP32[i4 + 12 >> 2] | 0;
   29559          50 :  i7 = (i5 | 0) != 0;
   29560          50 :  i11 = i9 + 4 | 0;
   29561          50 :  i10 = FUNCTION_TABLE_iiiii[HEAP32[i9 >> 2] & 3](HEAP32[i11 >> 2] | 0, i5, i6, i8) | 0;
   29562          50 :  if ((i10 | 0) != 0 | (i8 | 0) == 0) {
   29563          50 :   i5 = i9 + 12 | 0;
   29564          50 :   i4 = HEAP32[i5 >> 2] | 0;
   29565          50 :   i6 = 0 - i6 | 0;
   29566          50 :   i11 = i7 ? i6 : 0;
   29567          50 :   i11 = i11 + i8 | 0;
   29568          50 :   i11 = i11 + i4 | 0;
   29569          50 :   HEAP32[i5 >> 2] = i11;
   29570          50 :   HEAP32[i1 >> 2] = i3;
   29571          50 :   STACKTOP = i2;
   29572          50 :   return i10 | 0;
   29573          50 :  }
   29574          50 :  if ((HEAP8[i9 + 63 | 0] | 0) == 0) {
   29575          50 :   _luaD_throw(i4, 4);
   29576          50 :  }
   29577          50 :  _luaC_fullgc(i4, 1);
   29578          50 :  i10 = FUNCTION_TABLE_iiiii[HEAP32[i9 >> 2] & 3](HEAP32[i11 >> 2] | 0, i5, i6, i8) | 0;
   29579          50 :  if ((i10 | 0) == 0) {
   29580          50 :   _luaD_throw(i4, 4);
   29581          50 :  } else {
   29582          50 :   i5 = i9 + 12 | 0;
   29583          50 :   i4 = HEAP32[i5 >> 2] | 0;
   29584          50 :   i6 = 0 - i6 | 0;
   29585          50 :   i11 = i7 ? i6 : 0;
   29586          50 :   i11 = i11 + i8 | 0;
   29587          50 :   i11 = i11 + i4 | 0;
   29588          50 :   HEAP32[i5 >> 2] = i11;
   29589          50 :   HEAP32[i1 >> 2] = i3;
   29590          50 :   STACKTOP = i2;
   29591          50 :   return i10 | 0;
   29592          50 :  }
   29593          50 :  return 0;
   29594          50 : }
   29595           1 : function _luaD_hook(i5, i14, i13) {
   29596           0 :  i5 = i5 | 0;
   29597           0 :  i14 = i14 | 0;
   29598           0 :  i13 = i13 | 0;
   29599           0 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i15 = 0, i16 = 0;
   29600           0 :  i11 = STACKTOP;
   29601           0 :  STACKTOP = STACKTOP + 112 | 0;
   29602           0 :  i4 = i11;
   29603           0 :  i3 = HEAP32[i5 + 52 >> 2] | 0;
   29604           0 :  if ((i3 | 0) == 0) {
   29605           0 :   STACKTOP = i11;
   29606           0 :   return;
   29607           0 :  }
   29608           0 :  i8 = i5 + 41 | 0;
   29609           0 :  if ((HEAP8[i8] | 0) == 0) {
   29610           0 :   STACKTOP = i11;
   29611           0 :   return;
   29612           0 :  }
   29613           0 :  i10 = HEAP32[i5 + 16 >> 2] | 0;
   29614           0 :  i6 = i5 + 8 | 0;
   29615           0 :  i15 = HEAP32[i6 >> 2] | 0;
   29616           0 :  i1 = i5 + 28 | 0;
   29617           0 :  i16 = i15;
   29618           0 :  i12 = HEAP32[i1 >> 2] | 0;
   29619           0 :  i7 = i16 - i12 | 0;
   29620           0 :  i9 = i10 + 4 | 0;
   29621           0 :  i12 = (HEAP32[i9 >> 2] | 0) - i12 | 0;
   29622           0 :  HEAP32[i4 >> 2] = i14;
   29623           0 :  HEAP32[i4 + 20 >> 2] = i13;
   29624           0 :  HEAP32[i4 + 96 >> 2] = i10;
   29625           0 :  do {
   29626           0 :   if (((HEAP32[i5 + 24 >> 2] | 0) - i16 | 0) < 336) {
   29627           0 :    i14 = HEAP32[i5 + 32 >> 2] | 0;
   29628           0 :    if ((i14 | 0) > 1e6) {
   29629           0 :     _luaD_throw(i5, 6);
   29630           0 :    }
   29631           0 :    i13 = (i7 >> 4) + 25 | 0;
   29632           0 :    i14 = i14 << 1;
   29633           0 :    i14 = (i14 | 0) > 1e6 ? 1e6 : i14;
   29634           0 :    i13 = (i14 | 0) < (i13 | 0) ? i13 : i14;
   29635           0 :    if ((i13 | 0) > 1e6) {
   29636           0 :     _luaD_reallocstack(i5, 1000200);
   29637           0 :     _luaG_runerror(i5, 2224, i4);
   29638           0 :    } else {
   29639           0 :     _luaD_reallocstack(i5, i13);
   29640           0 :     i2 = HEAP32[i6 >> 2] | 0;
   29641           0 :     break;
   29642           0 :    }
   29643           0 :   } else {
   29644           0 :    i2 = i15;
   29645           0 :   }
   29646           0 :  } while (0);
   29647           0 :  HEAP32[i9 >> 2] = i2 + 320;
   29648           0 :  HEAP8[i8] = 0;
   29649           0 :  i16 = i10 + 18 | 0;
   29650           0 :  HEAP8[i16] = HEAPU8[i16] | 2;
   29651           0 :  FUNCTION_TABLE_vii[i3 & 15](i5, i4);
   29652           0 :  HEAP8[i8] = 1;
   29653           0 :  HEAP32[i9 >> 2] = (HEAP32[i1 >> 2] | 0) + i12;
   29654           0 :  HEAP32[i6 >> 2] = (HEAP32[i1 >> 2] | 0) + i7;
   29655           0 :  HEAP8[i16] = HEAP8[i16] & 253;
   29656           0 :  STACKTOP = i11;
   29657           0 :  return;
   29658           1 : }
   29659          19 : function _funcargs(i10, i2, i1) {
   29660          19 :  i10 = i10 | 0;
   29661          19 :  i2 = i2 | 0;
   29662          19 :  i1 = i1 | 0;
   29663          19 :  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
   29664          19 :  i3 = STACKTOP;
   29665          19 :  STACKTOP = STACKTOP + 32 | 0;
   29666          19 :  i6 = i3;
   29667          19 :  i9 = i10 + 48 | 0;
   29668          19 :  i5 = HEAP32[i9 >> 2] | 0;
   29669          19 :  i7 = i10 + 16 | 0;
   29670          19 :  i8 = HEAP32[i7 >> 2] | 0;
   29671          19 :  if ((i8 | 0) == 289) {
   29672          19 :   i9 = _luaK_stringK(i5, HEAP32[i10 + 24 >> 2] | 0) | 0;
   29673          19 :   HEAP32[i6 + 16 >> 2] = -1;
   29674          19 :   HEAP32[i6 + 20 >> 2] = -1;
   29675          19 :   HEAP32[i6 >> 2] = 4;
   29676          19 :   HEAP32[i6 + 8 >> 2] = i9;
   29677          19 :   _luaX_next(i10);
   29678          19 :  } else if ((i8 | 0) == 40) {
   29679          19 :   _luaX_next(i10);
   29680          19 :   if ((HEAP32[i7 >> 2] | 0) == 41) {
   29681          19 :    HEAP32[i6 >> 2] = 0;
   29682          19 :   } else {
   29683          19 :    _subexpr(i10, i6, 0) | 0;
   29684          19 :    if ((HEAP32[i7 >> 2] | 0) == 44) {
   29685          19 :     do {
   29686          19 :      _luaX_next(i10);
   29687          19 :      _luaK_exp2nextreg(HEAP32[i9 >> 2] | 0, i6);
   29688          19 :      _subexpr(i10, i6, 0) | 0;
   29689          19 :     } while ((HEAP32[i7 >> 2] | 0) == 44);
   29690          19 :    }
   29691          19 :    _luaK_setreturns(i5, i6, -1);
   29692          19 :   }
   29693          19 :   _check_match(i10, 41, 40, i1);
   29694          19 :  } else if ((i8 | 0) == 123) {
   29695          19 :   _constructor(i10, i6);
   29696          19 :  } else {
   29697          19 :   _luaX_syntaxerror(i10, 6624);
   29698          19 :  }
   29699          19 :  i8 = i2 + 8 | 0;
   29700          19 :  i7 = HEAP32[i8 >> 2] | 0;
   29701          19 :  i9 = HEAP32[i6 >> 2] | 0;
   29702          19 :  if ((i9 | 0) == 0) {
   29703          19 :   i4 = 13;
   29704          19 :  } else if ((i9 | 0) == 13 | (i9 | 0) == 12) {
   29705          19 :   i6 = 0;
   29706          19 :  } else {
   29707          19 :   _luaK_exp2nextreg(i5, i6);
   29708          19 :   i4 = 13;
   29709          19 :  }
   29710          19 :  if ((i4 | 0) == 13) {
   29711          19 :   i6 = (HEAPU8[i5 + 48 | 0] | 0) - i7 | 0;
   29712          19 :  }
   29713          19 :  i10 = _luaK_codeABC(i5, 29, i7, i6, 2) | 0;
   29714          19 :  HEAP32[i2 + 16 >> 2] = -1;
   29715          19 :  HEAP32[i2 + 20 >> 2] = -1;
   29716          19 :  HEAP32[i2 >> 2] = 12;
   29717          19 :  HEAP32[i8 >> 2] = i10;
   29718          19 :  _luaK_fixline(i5, i1);
   29719          19 :  HEAP8[i5 + 48 | 0] = i7 + 1;
   29720          19 :  STACKTOP = i3;
   29721          19 :  return;
   29722          19 : }
   29723          27 : function _luaD_reallocstack(i3, i6) {
   29724          27 :  i3 = i3 | 0;
   29725          27 :  i6 = i6 | 0;
   29726          27 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
   29727          27 :  i1 = STACKTOP;
   29728          27 :  i2 = i3 + 28 | 0;
   29729          27 :  i8 = HEAP32[i2 >> 2] | 0;
   29730          27 :  i7 = i3 + 32 | 0;
   29731          27 :  i9 = HEAP32[i7 >> 2] | 0;
   29732          27 :  if ((i6 + 1 | 0) >>> 0 > 268435455) {
   29733          27 :   _luaM_toobig(i3);
   29734          27 :  }
   29735          27 :  i5 = _luaM_realloc_(i3, i8, i9 << 4, i6 << 4) | 0;
   29736          27 :  HEAP32[i2 >> 2] = i5;
   29737          27 :  if ((i9 | 0) < (i6 | 0)) {
   29738          27 :   do {
   29739          27 :    HEAP32[i5 + (i9 << 4) + 8 >> 2] = 0;
   29740          27 :    i9 = i9 + 1 | 0;
   29741          27 :   } while ((i9 | 0) != (i6 | 0));
   29742          27 :  }
   29743          27 :  HEAP32[i7 >> 2] = i6;
   29744          27 :  HEAP32[i3 + 24 >> 2] = i5 + (i6 + -5 << 4);
   29745          27 :  i6 = i3 + 8 | 0;
   29746          27 :  HEAP32[i6 >> 2] = i5 + ((HEAP32[i6 >> 2] | 0) - i8 >> 4 << 4);
   29747          27 :  i6 = HEAP32[i3 + 56 >> 2] | 0;
   29748          27 :  if ((i6 | 0) != 0 ? (i4 = i6 + 8 | 0, HEAP32[i4 >> 2] = i5 + ((HEAP32[i4 >> 2] | 0) - i8 >> 4 << 4), i4 = HEAP32[i6 >> 2] | 0, (i4 | 0) != 0) : 0) {
   29749          27 :   do {
   29750          27 :    i9 = i4 + 8 | 0;
   29751          27 :    HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4);
   29752          27 :    i4 = HEAP32[i4 >> 2] | 0;
   29753          27 :   } while ((i4 | 0) != 0);
   29754          27 :  }
   29755          27 :  i3 = HEAP32[i3 + 16 >> 2] | 0;
   29756          27 :  if ((i3 | 0) == 0) {
   29757          27 :   STACKTOP = i1;
   29758          27 :   return;
   29759          27 :  }
   29760          27 :  do {
   29761          27 :   i9 = i3 + 4 | 0;
   29762          27 :   HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4);
   29763          27 :   HEAP32[i3 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i3 >> 2] | 0) - i8 >> 4 << 4);
   29764          27 :   if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) {
   29765          27 :    i9 = i3 + 24 | 0;
   29766          27 :    HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4);
   29767          27 :   }
   29768          27 :   i3 = HEAP32[i3 + 8 >> 2] | 0;
   29769          27 :  } while ((i3 | 0) != 0);
   29770          27 :  STACKTOP = i1;
   29771          27 :  return;
   29772          27 : }
   29773           2 : function _luaF_close(i7, i6) {
   29774           2 :  i7 = i7 | 0;
   29775           2 :  i6 = i6 | 0;
   29776           2 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
   29777           2 :  i1 = STACKTOP;
   29778           2 :  i4 = HEAP32[i7 + 12 >> 2] | 0;
   29779           2 :  i3 = i7 + 56 | 0;
   29780           2 :  i8 = HEAP32[i3 >> 2] | 0;
   29781           2 :  if ((i8 | 0) == 0) {
   29782           2 :   STACKTOP = i1;
   29783           2 :   return;
   29784           2 :  }
   29785           2 :  i5 = i4 + 60 | 0;
   29786           2 :  i2 = i4 + 68 | 0;
   29787           2 :  while (1) {
   29788           2 :   i9 = i8 + 8 | 0;
   29789           2 :   if ((HEAP32[i9 >> 2] | 0) >>> 0 < i6 >>> 0) {
   29790           2 :    i2 = 10;
   29791           2 :    break;
   29792           2 :   }
   29793           2 :   HEAP32[i3 >> 2] = HEAP32[i8 >> 2];
   29794           2 :   if ((((HEAPU8[i5] | 0) ^ 3) & ((HEAPU8[i8 + 5 | 0] | 0) ^ 3) | 0) == 0) {
   29795           2 :    if ((HEAP32[i9 >> 2] | 0) != (i8 + 16 | 0)) {
   29796           2 :     i9 = i8 + 16 | 0;
   29797           2 :     i10 = i9 + 4 | 0;
   29798           2 :     HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] = HEAP32[i9 >> 2];
   29799           2 :     HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] = HEAP32[i10 >> 2];
   29800           2 :    }
   29801           2 :    _luaM_realloc_(i7, i8, 32, 0) | 0;
   29802           2 :   } else {
   29803           2 :    i11 = i8 + 16 | 0;
   29804           2 :    i10 = i11 + 4 | 0;
   29805           2 :    HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] = HEAP32[i11 >> 2];
   29806           2 :    HEAP32[(HEAP32[i11 >> 2] | 0) + 20 >> 2] = HEAP32[i10 >> 2];
   29807           2 :    i11 = HEAP32[i9 >> 2] | 0;
   29808           2 :    i10 = i8 + 16 | 0;
   29809           2 :    i14 = i11;
   29810           2 :    i13 = HEAP32[i14 + 4 >> 2] | 0;
   29811           2 :    i12 = i10;
   29812           2 :    HEAP32[i12 >> 2] = HEAP32[i14 >> 2];
   29813           2 :    HEAP32[i12 + 4 >> 2] = i13;
   29814           2 :    HEAP32[i8 + 24 >> 2] = HEAP32[i11 + 8 >> 2];
   29815           2 :    HEAP32[i9 >> 2] = i10;
   29816           2 :    HEAP32[i8 >> 2] = HEAP32[i2 >> 2];
   29817           2 :    HEAP32[i2 >> 2] = i8;
   29818           2 :    _luaC_checkupvalcolor(i4, i8);
   29819           2 :   }
   29820           2 :   i8 = HEAP32[i3 >> 2] | 0;
   29821           2 :   if ((i8 | 0) == 0) {
   29822           2 :    i2 = 10;
   29823           2 :    break;
   29824           2 :   }
   29825           2 :  }
   29826           2 :  if ((i2 | 0) == 10) {
   29827           2 :   STACKTOP = i1;
   29828           2 :   return;
   29829           2 :  }
   29830           2 : }
   29831         337 : function _luaK_dischargevars(i3, i1) {
   29832         337 :  i3 = i3 | 0;
   29833         337 :  i1 = i1 | 0;
   29834         337 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0;
   29835         337 :  i2 = STACKTOP;
   29836         337 :  switch (HEAP32[i1 >> 2] | 0) {
   29837         337 :  case 12:
   29838         337 :   {
   29839         337 :    HEAP32[i1 >> 2] = 6;
   29840         337 :    i6 = i1 + 8 | 0;
   29841         337 :    HEAP32[i6 >> 2] = (HEAP32[(HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i6 >> 2] << 2) >> 2] | 0) >>> 6 & 255;
   29842         337 :    STACKTOP = i2;
   29843         337 :    return;
   29844         337 :   }
   29845         337 :  case 13:
   29846         337 :   {
   29847         337 :    i6 = (HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i1 + 8 >> 2] << 2) | 0;
   29848         337 :    HEAP32[i6 >> 2] = HEAP32[i6 >> 2] & 8388607 | 16777216;
   29849         337 :    HEAP32[i1 >> 2] = 11;
   29850         337 :    STACKTOP = i2;
   29851         337 :    return;
   29852         337 :   }
   29853         337 :  case 9:
   29854         337 :   {
   29855         337 :    i4 = i1 + 8 | 0;
   29856         337 :    i5 = HEAP16[i4 >> 1] | 0;
   29857         337 :    if ((i5 & 256 | 0) == 0 ? (HEAPU8[i3 + 46 | 0] | 0) <= (i5 | 0) : 0) {
   29858         337 :     i6 = i3 + 48 | 0;
   29859         337 :     HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24;
   29860         337 :    }
   29861         337 :    i5 = i4 + 2 | 0;
   29862         337 :    if ((HEAP8[i4 + 3 | 0] | 0) == 7) {
   29863         337 :     if ((HEAPU8[i3 + 46 | 0] | 0) > (HEAPU8[i5] | 0)) {
   29864         337 :      i6 = 7;
   29865         337 :     } else {
   29866         337 :      i6 = i3 + 48 | 0;
   29867         337 :      HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24;
   29868         337 :      i6 = 7;
   29869         337 :     }
   29870         337 :    } else {
   29871         337 :     i6 = 6;
   29872         337 :    }
   29873         337 :    HEAP32[i4 >> 2] = _luaK_code(i3, HEAPU8[i5] << 23 | i6 | HEAP16[i4 >> 1] << 14) | 0;
   29874         337 :    HEAP32[i1 >> 2] = 11;
   29875         337 :    STACKTOP = i2;
   29876         337 :    return;
   29877         337 :   }
   29878         337 :  case 7:
   29879         337 :   {
   29880         337 :    HEAP32[i1 >> 2] = 6;
   29881         337 :    STACKTOP = i2;
   29882         337 :    return;
   29883         337 :   }
   29884         337 :  case 8:
   29885         337 :   {
   29886         337 :    i6 = i1 + 8 | 0;
   29887         337 :    HEAP32[i6 >> 2] = _luaK_code(i3, HEAP32[i6 >> 2] << 23 | 5) | 0;
   29888         337 :    HEAP32[i1 >> 2] = 11;
   29889         337 :    STACKTOP = i2;
   29890         337 :    return;
   29891         337 :   }
   29892         337 :  default:
   29893         337 :   {
   29894         337 :    STACKTOP = i2;
   29895         337 :    return;
   29896         337 :   }
   29897         337 :  }
   29898         337 : }
   29899           1 : function _gmatch_aux(i10) {
   29900           0 :  i10 = i10 | 0;
   29901           0 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0;
   29902           0 :  i1 = STACKTOP;
   29903           0 :  STACKTOP = STACKTOP + 288 | 0;
   29904           0 :  i2 = i1 + 8 | 0;
   29905           0 :  i12 = i1 + 4 | 0;
   29906           0 :  i3 = i1;
   29907           0 :  i8 = _lua_tolstring(i10, -1001001, i12) | 0;
   29908           0 :  i7 = _lua_tolstring(i10, -1001002, i3) | 0;
   29909           0 :  i5 = i2 + 16 | 0;
   29910           0 :  HEAP32[i5 >> 2] = i10;
   29911           0 :  HEAP32[i2 >> 2] = 200;
   29912           0 :  HEAP32[i2 + 4 >> 2] = i8;
   29913           0 :  i9 = i2 + 8 | 0;
   29914           0 :  HEAP32[i9 >> 2] = i8 + (HEAP32[i12 >> 2] | 0);
   29915           0 :  HEAP32[i2 + 12 >> 2] = i7 + (HEAP32[i3 >> 2] | 0);
   29916           0 :  i3 = i8 + (_lua_tointegerx(i10, -1001003, 0) | 0) | 0;
   29917           0 :  if (i3 >>> 0 > (HEAP32[i9 >> 2] | 0) >>> 0) {
   29918           0 :   i12 = 0;
   29919           0 :   STACKTOP = i1;
   29920           0 :   return i12 | 0;
   29921           0 :  }
   29922           0 :  i11 = i2 + 20 | 0;
   29923           0 :  while (1) {
   29924           0 :   HEAP32[i11 >> 2] = 0;
   29925           0 :   i4 = _match(i2, i3, i7) | 0;
   29926           0 :   i12 = i3 + 1 | 0;
   29927           0 :   if ((i4 | 0) != 0) {
   29928           0 :    break;
   29929           0 :   }
   29930           0 :   if (i12 >>> 0 > (HEAP32[i9 >> 2] | 0) >>> 0) {
   29931           0 :    i2 = 0;
   29932           0 :    i6 = 7;
   29933           0 :    break;
   29934           0 :   } else {
   29935           0 :    i3 = i12;
   29936           0 :   }
   29937           0 :  }
   29938           0 :  if ((i6 | 0) == 7) {
   29939           0 :   STACKTOP = i1;
   29940           0 :   return i2 | 0;
   29941           0 :  }
   29942           0 :  _lua_pushinteger(i10, i4 - i8 + ((i4 | 0) == (i3 | 0)) | 0);
   29943           0 :  _lua_replace(i10, -1001003);
   29944           0 :  i7 = HEAP32[i11 >> 2] | 0;
   29945           0 :  i6 = (i7 | 0) != 0 | (i3 | 0) == 0 ? i7 : 1;
   29946           0 :  _luaL_checkstack(HEAP32[i5 >> 2] | 0, i6, 7200);
   29947           0 :  if ((i6 | 0) > 0) {
   29948           0 :   i5 = 0;
   29949           0 :  } else {
   29950           0 :   i12 = i7;
   29951           0 :   STACKTOP = i1;
   29952           0 :   return i12 | 0;
   29953           0 :  }
   29954           0 :  while (1) {
   29955           0 :   _push_onecapture(i2, i5, i3, i4);
   29956           0 :   i5 = i5 + 1 | 0;
   29957           0 :   if ((i5 | 0) == (i6 | 0)) {
   29958           0 :    i2 = i6;
   29959           0 :    break;
   29960           0 :   }
   29961           0 :  }
   29962           0 :  STACKTOP = i1;
   29963           0 :  return i2 | 0;
   29964           1 : }
   29965           7 : function _lua_rawseti(i1, i5, i3) {
   29966           7 :  i1 = i1 | 0;
   29967           7 :  i5 = i5 | 0;
   29968           7 :  i3 = i3 | 0;
   29969           7 :  var i2 = 0, i4 = 0, i6 = 0;
   29970           7 :  i2 = STACKTOP;
   29971           7 :  i6 = HEAP32[i1 + 16 >> 2] | 0;
   29972           7 :  do {
   29973           7 :   if ((i5 | 0) <= 0) {
   29974           7 :    if (!((i5 | 0) < -1000999)) {
   29975           7 :     i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
   29976           7 :     break;
   29977           7 :    }
   29978           7 :    if ((i5 | 0) == -1001e3) {
   29979           7 :     i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   29980           7 :     break;
   29981           7 :    }
   29982           7 :    i5 = -1001e3 - i5 | 0;
   29983           7 :    i6 = HEAP32[i6 >> 2] | 0;
   29984           7 :    if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   29985           7 :     i5 = i4 + (i5 + -1 << 4) + 16 | 0;
   29986           7 :    } else {
   29987           7 :     i5 = 5192;
   29988           7 :    }
   29989           7 :   } else {
   29990           7 :    i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0;
   29991           7 :    i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   29992           7 :   }
   29993           7 :  } while (0);
   29994           7 :  i4 = i1 + 8 | 0;
   29995           7 :  _luaH_setint(i1, HEAP32[i5 >> 2] | 0, i3, (HEAP32[i4 >> 2] | 0) + -16 | 0);
   29996           7 :  i3 = HEAP32[i4 >> 2] | 0;
   29997           7 :  if ((HEAP32[i3 + -8 >> 2] & 64 | 0) == 0) {
   29998           7 :   i6 = i3;
   29999           7 :   i6 = i6 + -16 | 0;
   30000           7 :   HEAP32[i4 >> 2] = i6;
   30001           7 :   STACKTOP = i2;
   30002           7 :   return;
   30003           7 :  }
   30004           7 :  if ((HEAP8[(HEAP32[i3 + -16 >> 2] | 0) + 5 | 0] & 3) == 0) {
   30005           7 :   i6 = i3;
   30006           7 :   i6 = i6 + -16 | 0;
   30007           7 :   HEAP32[i4 >> 2] = i6;
   30008           7 :   STACKTOP = i2;
   30009           7 :   return;
   30010           7 :  }
   30011           7 :  i5 = HEAP32[i5 >> 2] | 0;
   30012           7 :  if ((HEAP8[i5 + 5 | 0] & 4) == 0) {
   30013           7 :   i6 = i3;
   30014           7 :   i6 = i6 + -16 | 0;
   30015           7 :   HEAP32[i4 >> 2] = i6;
   30016           7 :   STACKTOP = i2;
   30017           7 :   return;
   30018           7 :  }
   30019           7 :  _luaC_barrierback_(i1, i5);
   30020           7 :  i6 = HEAP32[i4 >> 2] | 0;
   30021           7 :  i6 = i6 + -16 | 0;
   30022           7 :  HEAP32[i4 >> 2] = i6;
   30023           7 :  STACKTOP = i2;
   30024           7 :  return;
   30025           7 : }
   30026           1 : function _ll_require(i1) {
   30027           0 :  i1 = i1 | 0;
   30028           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   30029           0 :  i2 = STACKTOP;
   30030           0 :  STACKTOP = STACKTOP + 1056 | 0;
   30031           0 :  i5 = i2;
   30032           0 :  i4 = i2 + 8 | 0;
   30033           0 :  i3 = _luaL_checklstring(i1, 1, 0) | 0;
   30034           0 :  _lua_settop(i1, 1);
   30035           0 :  _lua_getfield(i1, -1001e3, 4576);
   30036           0 :  _lua_getfield(i1, 2, i3);
   30037           0 :  if ((_lua_toboolean(i1, -1) | 0) != 0) {
   30038           0 :   STACKTOP = i2;
   30039           0 :   return 1;
   30040           0 :  }
   30041           0 :  _lua_settop(i1, -2);
   30042           0 :  _luaL_buffinit(i1, i4);
   30043           0 :  _lua_getfield(i1, -1001001, 4240);
   30044           0 :  if ((_lua_type(i1, 3) | 0) == 5) {
   30045           0 :   i6 = 1;
   30046           0 :  } else {
   30047           0 :   _luaL_error(i1, 4656, i5) | 0;
   30048           0 :   i6 = 1;
   30049           0 :  }
   30050           0 :  while (1) {
   30051           0 :   _lua_rawgeti(i1, 3, i6);
   30052           0 :   if ((_lua_type(i1, -1) | 0) == 0) {
   30053           0 :    _lua_settop(i1, -2);
   30054           0 :    _luaL_pushresult(i4);
   30055           0 :    i7 = _lua_tolstring(i1, -1, 0) | 0;
   30056           0 :    HEAP32[i5 >> 2] = i3;
   30057           0 :    HEAP32[i5 + 4 >> 2] = i7;
   30058           0 :    _luaL_error(i1, 4696, i5) | 0;
   30059           0 :   }
   30060           0 :   _lua_pushstring(i1, i3) | 0;
   30061           0 :   _lua_callk(i1, 1, 2, 0, 0);
   30062           0 :   if ((_lua_type(i1, -2) | 0) == 6) {
   30063           0 :    break;
   30064           0 :   }
   30065           0 :   if ((_lua_isstring(i1, -2) | 0) == 0) {
   30066           0 :    _lua_settop(i1, -3);
   30067           0 :   } else {
   30068           0 :    _lua_settop(i1, -2);
   30069           0 :    _luaL_addvalue(i4);
   30070           0 :   }
   30071           0 :   i6 = i6 + 1 | 0;
   30072           0 :  }
   30073           0 :  _lua_pushstring(i1, i3) | 0;
   30074           0 :  _lua_insert(i1, -2);
   30075           0 :  _lua_callk(i1, 2, 1, 0, 0);
   30076           0 :  if ((_lua_type(i1, -1) | 0) != 0) {
   30077           0 :   _lua_setfield(i1, 2, i3);
   30078           0 :  }
   30079           0 :  _lua_getfield(i1, 2, i3);
   30080           0 :  if ((_lua_type(i1, -1) | 0) != 0) {
   30081           0 :   STACKTOP = i2;
   30082           0 :   return 1;
   30083           0 :  }
   30084           0 :  _lua_pushboolean(i1, 1);
   30085           0 :  _lua_pushvalue(i1, -1);
   30086           0 :  _lua_setfield(i1, 2, i3);
   30087           0 :  STACKTOP = i2;
   30088           0 :  return 1;
   30089           1 : }
   30090           1 : function _f_parser(i1, i3) {
   30091           1 :  i1 = i1 | 0;
   30092           1 :  i3 = i3 | 0;
   30093           1 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
   30094           1 :  i2 = STACKTOP;
   30095           1 :  STACKTOP = STACKTOP + 16 | 0;
   30096           1 :  i4 = i2;
   30097           1 :  i5 = HEAP32[i3 >> 2] | 0;
   30098           1 :  i8 = HEAP32[i5 >> 2] | 0;
   30099           1 :  HEAP32[i5 >> 2] = i8 + -1;
   30100           1 :  if ((i8 | 0) == 0) {
   30101           1 :   i6 = _luaZ_fill(i5) | 0;
   30102           1 :  } else {
   30103           1 :   i8 = i5 + 4 | 0;
   30104           1 :   i6 = HEAP32[i8 >> 2] | 0;
   30105           1 :   HEAP32[i8 >> 2] = i6 + 1;
   30106           1 :   i6 = HEAPU8[i6] | 0;
   30107           1 :  }
   30108           1 :  i5 = HEAP32[i3 + 52 >> 2] | 0;
   30109           1 :  i7 = (i5 | 0) == 0;
   30110           1 :  if ((i6 | 0) == 27) {
   30111           1 :   if (!i7 ? (_strchr(i5, 98) | 0) == 0 : 0) {
   30112           1 :    HEAP32[i4 >> 2] = 2360;
   30113           1 :    HEAP32[i4 + 4 >> 2] = i5;
   30114           1 :    _luaO_pushfstring(i1, 2376, i4) | 0;
   30115           1 :    _luaD_throw(i1, 3);
   30116           1 :   }
   30117           1 :   i8 = _luaU_undump(i1, HEAP32[i3 >> 2] | 0, i3 + 4 | 0, HEAP32[i3 + 56 >> 2] | 0) | 0;
   30118           1 :  } else {
   30119           1 :   if (!i7 ? (_strchr(i5, 116) | 0) == 0 : 0) {
   30120           1 :    HEAP32[i4 >> 2] = 2368;
   30121           1 :    HEAP32[i4 + 4 >> 2] = i5;
   30122           1 :    _luaO_pushfstring(i1, 2376, i4) | 0;
   30123           1 :    _luaD_throw(i1, 3);
   30124           1 :   }
   30125           1 :   i8 = _luaY_parser(i1, HEAP32[i3 >> 2] | 0, i3 + 4 | 0, i3 + 16 | 0, HEAP32[i3 + 56 >> 2] | 0, i6) | 0;
   30126           1 :  }
   30127           1 :  i7 = i8 + 6 | 0;
   30128           1 :  if ((HEAP8[i7] | 0) == 0) {
   30129           1 :   STACKTOP = i2;
   30130           1 :   return;
   30131           1 :  }
   30132           1 :  i5 = i8 + 16 | 0;
   30133           1 :  i6 = i8 + 5 | 0;
   30134           1 :  i4 = 0;
   30135           1 :  do {
   30136           1 :   i3 = _luaF_newupval(i1) | 0;
   30137           1 :   HEAP32[i5 + (i4 << 2) >> 2] = i3;
   30138           1 :   if (!((HEAP8[i3 + 5 | 0] & 3) == 0) ? !((HEAP8[i6] & 4) == 0) : 0) {
   30139           1 :    _luaC_barrier_(i1, i8, i3);
   30140           1 :   }
   30141           1 :   i4 = i4 + 1 | 0;
   30142           1 :  } while ((i4 | 0) < (HEAPU8[i7] | 0));
   30143           1 :  STACKTOP = i2;
   30144           1 :  return;
   30145           1 : }
   30146           1 : function _str_rep(i9) {
   30147           0 :  i9 = i9 | 0;
   30148           0 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0;
   30149           0 :  i6 = STACKTOP;
   30150           0 :  STACKTOP = STACKTOP + 1056 | 0;
   30151           0 :  i4 = i6;
   30152           0 :  i2 = i6 + 1044 | 0;
   30153           0 :  i3 = i6 + 1040 | 0;
   30154           0 :  i1 = _luaL_checklstring(i9, 1, i2) | 0;
   30155           0 :  i8 = _luaL_checkinteger(i9, 2) | 0;
   30156           0 :  i5 = _luaL_optlstring(i9, 3, 7040, i3) | 0;
   30157           0 :  if ((i8 | 0) < 1) {
   30158           0 :   _lua_pushlstring(i9, 7040, 0) | 0;
   30159           0 :   i12 = 1;
   30160           0 :   STACKTOP = i6;
   30161           0 :   return i12 | 0;
   30162           0 :  }
   30163           0 :  i7 = HEAP32[i2 >> 2] | 0;
   30164           0 :  i10 = HEAP32[i3 >> 2] | 0;
   30165           0 :  i11 = i10 + i7 | 0;
   30166           0 :  if (!(i11 >>> 0 < i7 >>> 0) ? i11 >>> 0 < (2147483647 / (i8 >>> 0) | 0) >>> 0 : 0) {
   30167           0 :   i7 = (Math_imul(i10, i8 + -1 | 0) | 0) + (Math_imul(i7, i8) | 0) | 0;
   30168           0 :   i11 = _luaL_buffinitsize(i9, i4, i7) | 0;
   30169           0 :   _memcpy(i11 | 0, i1 | 0, HEAP32[i2 >> 2] | 0) | 0;
   30170           0 :   if ((i8 | 0) > 1) {
   30171           0 :    while (1) {
   30172           0 :     i8 = i8 + -1 | 0;
   30173           0 :     i9 = HEAP32[i2 >> 2] | 0;
   30174           0 :     i10 = i11 + i9 | 0;
   30175           0 :     i12 = HEAP32[i3 >> 2] | 0;
   30176           0 :     if ((i12 | 0) == 0) {
   30177           0 :      i12 = i9;
   30178           0 :     } else {
   30179           0 :      _memcpy(i10 | 0, i5 | 0, i12 | 0) | 0;
   30180           0 :      i12 = HEAP32[i2 >> 2] | 0;
   30181           0 :      i10 = i11 + ((HEAP32[i3 >> 2] | 0) + i9) | 0;
   30182           0 :     }
   30183           0 :     _memcpy(i10 | 0, i1 | 0, i12 | 0) | 0;
   30184           0 :     if ((i8 | 0) <= 1) {
   30185           0 :      break;
   30186           0 :     } else {
   30187           0 :      i11 = i10;
   30188           0 :     }
   30189           0 :    }
   30190           0 :   }
   30191           0 :   _luaL_pushresultsize(i4, i7);
   30192           0 :   i12 = 1;
   30193           0 :   STACKTOP = i6;
   30194           0 :   return i12 | 0;
   30195           0 :  }
   30196           0 :  i12 = _luaL_error(i9, 7168, i4) | 0;
   30197           0 :  STACKTOP = i6;
   30198           0 :  return i12 | 0;
   30199           1 : }
   30200           2 : function ___strchrnul(i6, i2) {
   30201           2 :  i6 = i6 | 0;
   30202           2 :  i2 = i2 | 0;
   30203           2 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0;
   30204           2 :  i1 = STACKTOP;
   30205           2 :  i3 = i2 & 255;
   30206           2 :  if ((i3 | 0) == 0) {
   30207           2 :   i7 = i6 + (_strlen(i6 | 0) | 0) | 0;
   30208           2 :   STACKTOP = i1;
   30209           2 :   return i7 | 0;
   30210           2 :  }
   30211           2 :  L5 : do {
   30212           2 :   if ((i6 & 3 | 0) != 0) {
   30213           2 :    i4 = i2 & 255;
   30214           2 :    while (1) {
   30215           2 :     i5 = HEAP8[i6] | 0;
   30216           2 :     if (i5 << 24 >> 24 == 0) {
   30217           2 :      i4 = i6;
   30218           2 :      i5 = 13;
   30219           2 :      break;
   30220           2 :     }
   30221           2 :     i7 = i6 + 1 | 0;
   30222           2 :     if (i5 << 24 >> 24 == i4 << 24 >> 24) {
   30223           2 :      i4 = i6;
   30224           2 :      i5 = 13;
   30225           2 :      break;
   30226           2 :     }
   30227           2 :     if ((i7 & 3 | 0) == 0) {
   30228           2 :      i4 = i7;
   30229           2 :      break L5;
   30230           2 :     } else {
   30231           2 :      i6 = i7;
   30232           2 :     }
   30233           2 :    }
   30234           2 :    if ((i5 | 0) == 13) {
   30235           2 :     STACKTOP = i1;
   30236           2 :     return i4 | 0;
   30237           2 :    }
   30238           2 :   } else {
   30239           2 :    i4 = i6;
   30240           2 :   }
   30241           2 :  } while (0);
   30242           2 :  i3 = Math_imul(i3, 16843009) | 0;
   30243           2 :  i6 = HEAP32[i4 >> 2] | 0;
   30244           2 :  L15 : do {
   30245           2 :   if (((i6 & -2139062144 ^ -2139062144) & i6 + -16843009 | 0) == 0) {
   30246           2 :    while (1) {
   30247           2 :     i7 = i6 ^ i3;
   30248           2 :     i5 = i4 + 4 | 0;
   30249           2 :     if (((i7 & -2139062144 ^ -2139062144) & i7 + -16843009 | 0) != 0) {
   30250           2 :      break L15;
   30251           2 :     }
   30252           2 :     i6 = HEAP32[i5 >> 2] | 0;
   30253           2 :     if (((i6 & -2139062144 ^ -2139062144) & i6 + -16843009 | 0) == 0) {
   30254           2 :      i4 = i5;
   30255           2 :     } else {
   30256           2 :      i4 = i5;
   30257           2 :      break;
   30258           2 :     }
   30259           2 :    }
   30260           2 :   }
   30261           2 :  } while (0);
   30262           2 :  i2 = i2 & 255;
   30263           2 :  while (1) {
   30264           2 :   i7 = HEAP8[i4] | 0;
   30265           2 :   if (i7 << 24 >> 24 == 0 | i7 << 24 >> 24 == i2 << 24 >> 24) {
   30266           2 :    break;
   30267           2 :   } else {
   30268           2 :    i4 = i4 + 1 | 0;
   30269           2 :   }
   30270           2 :  }
   30271           2 :  STACKTOP = i1;
   30272           2 :  return i4 | 0;
   30273           2 : }
   30274           1 : function _lua_replace(i2, i6) {
   30275           0 :  i2 = i2 | 0;
   30276           0 :  i6 = i6 | 0;
   30277           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   30278           0 :  i3 = STACKTOP;
   30279           0 :  i7 = i2 + 8 | 0;
   30280           0 :  i9 = HEAP32[i7 >> 2] | 0;
   30281           0 :  i5 = i9 + -16 | 0;
   30282           0 :  i4 = i2 + 16 | 0;
   30283           0 :  i12 = HEAP32[i4 >> 2] | 0;
   30284           0 :  do {
   30285           0 :   if ((i6 | 0) <= 0) {
   30286           0 :    if (!((i6 | 0) < -1000999)) {
   30287           0 :     i10 = i9 + (i6 << 4) | 0;
   30288           0 :     break;
   30289           0 :    }
   30290           0 :    if ((i6 | 0) == -1001e3) {
   30291           0 :     i10 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   30292           0 :     break;
   30293           0 :    }
   30294           0 :    i11 = -1001e3 - i6 | 0;
   30295           0 :    i12 = HEAP32[i12 >> 2] | 0;
   30296           0 :    if ((HEAP32[i12 + 8 >> 2] | 0) != 22 ? (i10 = HEAP32[i12 >> 2] | 0, (i11 | 0) <= (HEAPU8[i10 + 6 | 0] | 0 | 0)) : 0) {
   30297           0 :     i10 = i10 + (i11 + -1 << 4) + 16 | 0;
   30298           0 :    } else {
   30299           0 :     i10 = 5192;
   30300           0 :    }
   30301           0 :   } else {
   30302           0 :    i10 = (HEAP32[i12 >> 2] | 0) + (i6 << 4) | 0;
   30303           0 :    i10 = i10 >>> 0 < i9 >>> 0 ? i10 : 5192;
   30304           0 :   }
   30305           0 :  } while (0);
   30306           0 :  i13 = i5;
   30307           0 :  i11 = HEAP32[i13 + 4 >> 2] | 0;
   30308           0 :  i12 = i10;
   30309           0 :  HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
   30310           0 :  HEAP32[i12 + 4 >> 2] = i11;
   30311           0 :  i9 = i9 + -8 | 0;
   30312           0 :  HEAP32[i10 + 8 >> 2] = HEAP32[i9 >> 2];
   30313           0 :  if ((((i6 | 0) < -1001e3 ? (HEAP32[i9 >> 2] & 64 | 0) != 0 : 0) ? (i1 = HEAP32[i5 >> 2] | 0, !((HEAP8[i1 + 5 | 0] & 3) == 0)) : 0) ? (i8 = HEAP32[HEAP32[HEAP32[i4 >> 2] >> 2] >> 2] | 0, !((HEAP8[i8 + 5 | 0] & 4) == 0)) : 0) {
   30314           0 :   _luaC_barrier_(i2, i8, i1);
   30315           0 :  }
   30316           0 :  HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16;
   30317           0 :  STACKTOP = i3;
   30318           0 :  return;
   30319           1 : }
   30320          77 : function _memchr(i4, i3, i6) {
   30321          77 :  i4 = i4 | 0;
   30322          77 :  i3 = i3 | 0;
   30323          77 :  i6 = i6 | 0;
   30324          77 :  var i1 = 0, i2 = 0, i5 = 0, i7 = 0;
   30325          77 :  i1 = STACKTOP;
   30326          77 :  i2 = i3 & 255;
   30327          77 :  i7 = (i6 | 0) == 0;
   30328          77 :  L1 : do {
   30329          77 :   if ((i4 & 3 | 0) == 0 | i7) {
   30330          77 :    i5 = i6;
   30331          77 :    i6 = 5;
   30332          77 :   } else {
   30333          77 :    i5 = i3 & 255;
   30334          77 :    while (1) {
   30335          77 :     if ((HEAP8[i4] | 0) == i5 << 24 >> 24) {
   30336          77 :      i5 = i6;
   30337          77 :      i6 = 6;
   30338          77 :      break L1;
   30339          77 :     }
   30340          77 :     i4 = i4 + 1 | 0;
   30341          77 :     i6 = i6 + -1 | 0;
   30342          77 :     i7 = (i6 | 0) == 0;
   30343          77 :     if ((i4 & 3 | 0) == 0 | i7) {
   30344          77 :      i5 = i6;
   30345          77 :      i6 = 5;
   30346          77 :      break;
   30347          77 :     }
   30348          77 :    }
   30349          77 :   }
   30350          77 :  } while (0);
   30351          77 :  if ((i6 | 0) == 5) {
   30352          77 :   if (i7) {
   30353          77 :    i5 = 0;
   30354          77 :   } else {
   30355          77 :    i6 = 6;
   30356          77 :   }
   30357          77 :  }
   30358          77 :  L8 : do {
   30359          77 :   if ((i6 | 0) == 6) {
   30360          77 :    i3 = i3 & 255;
   30361          77 :    if (!((HEAP8[i4] | 0) == i3 << 24 >> 24)) {
   30362          77 :     i2 = Math_imul(i2, 16843009) | 0;
   30363          77 :     L11 : do {
   30364          77 :      if (i5 >>> 0 > 3) {
   30365          77 :       do {
   30366          77 :        i7 = HEAP32[i4 >> 2] ^ i2;
   30367          77 :        if (((i7 & -2139062144 ^ -2139062144) & i7 + -16843009 | 0) != 0) {
   30368          77 :         break L11;
   30369          77 :        }
   30370          77 :        i4 = i4 + 4 | 0;
   30371          77 :        i5 = i5 + -4 | 0;
   30372          77 :       } while (i5 >>> 0 > 3);
   30373          77 :      }
   30374          77 :     } while (0);
   30375          77 :     if ((i5 | 0) == 0) {
   30376          77 :      i5 = 0;
   30377          77 :     } else {
   30378          77 :      while (1) {
   30379          77 :       if ((HEAP8[i4] | 0) == i3 << 24 >> 24) {
   30380          77 :        break L8;
   30381          77 :       }
   30382          77 :       i4 = i4 + 1 | 0;
   30383          77 :       i5 = i5 + -1 | 0;
   30384          77 :       if ((i5 | 0) == 0) {
   30385          77 :        i5 = 0;
   30386          77 :        break;
   30387          77 :       }
   30388          77 :      }
   30389          77 :     }
   30390          77 :    }
   30391          77 :   }
   30392          77 :  } while (0);
   30393          77 :  STACKTOP = i1;
   30394          77 :  return ((i5 | 0) != 0 ? i4 : 0) | 0;
   30395          77 : }
   30396           2 : function _lua_insert(i2, i5) {
   30397           2 :  i2 = i2 | 0;
   30398           2 :  i5 = i5 | 0;
   30399           2 :  var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0;
   30400           2 :  i1 = STACKTOP;
   30401           2 :  i4 = HEAP32[i2 + 16 >> 2] | 0;
   30402           2 :  do {
   30403           2 :   if ((i5 | 0) <= 0) {
   30404           2 :    if (!((i5 | 0) < -1000999)) {
   30405           2 :     i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0;
   30406           2 :     break;
   30407           2 :    }
   30408           2 :    if ((i5 | 0) == -1001e3) {
   30409           2 :     i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   30410           2 :     break;
   30411           2 :    }
   30412           2 :    i5 = -1001e3 - i5 | 0;
   30413           2 :    i4 = HEAP32[i4 >> 2] | 0;
   30414           2 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   30415           2 :     i3 = i3 + (i5 + -1 << 4) + 16 | 0;
   30416           2 :    } else {
   30417           2 :     i3 = 5192;
   30418           2 :    }
   30419           2 :   } else {
   30420           2 :    i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   30421           2 :    i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   30422           2 :   }
   30423           2 :  } while (0);
   30424           2 :  i2 = i2 + 8 | 0;
   30425           2 :  i4 = HEAP32[i2 >> 2] | 0;
   30426           2 :  if (i4 >>> 0 > i3 >>> 0) {
   30427           2 :   while (1) {
   30428           2 :    i5 = i4 + -16 | 0;
   30429           2 :    i8 = i5;
   30430           2 :    i7 = HEAP32[i8 + 4 >> 2] | 0;
   30431           2 :    i6 = i4;
   30432           2 :    HEAP32[i6 >> 2] = HEAP32[i8 >> 2];
   30433           2 :    HEAP32[i6 + 4 >> 2] = i7;
   30434           2 :    HEAP32[i4 + 8 >> 2] = HEAP32[i4 + -8 >> 2];
   30435           2 :    if (i5 >>> 0 > i3 >>> 0) {
   30436           2 :     i4 = i5;
   30437           2 :    } else {
   30438           2 :     break;
   30439           2 :    }
   30440           2 :   }
   30441           2 :   i4 = HEAP32[i2 >> 2] | 0;
   30442           2 :  }
   30443           2 :  i6 = i4;
   30444           2 :  i7 = HEAP32[i6 + 4 >> 2] | 0;
   30445           2 :  i8 = i3;
   30446           2 :  HEAP32[i8 >> 2] = HEAP32[i6 >> 2];
   30447           2 :  HEAP32[i8 + 4 >> 2] = i7;
   30448           2 :  HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
   30449           2 :  STACKTOP = i1;
   30450           2 :  return;
   30451           2 : }
   30452           1 : function _findlocal(i6, i4, i1, i2) {
   30453           0 :  i6 = i6 | 0;
   30454           0 :  i4 = i4 | 0;
   30455           0 :  i1 = i1 | 0;
   30456           0 :  i2 = i2 | 0;
   30457           0 :  var i3 = 0, i5 = 0, i7 = 0, i8 = 0;
   30458           0 :  i3 = STACKTOP;
   30459           0 :  do {
   30460           0 :   if ((HEAP8[i4 + 18 | 0] & 1) == 0) {
   30461           0 :    i7 = (HEAP32[i4 >> 2] | 0) + 16 | 0;
   30462           0 :    i5 = 7;
   30463           0 :   } else {
   30464           0 :    if ((i1 | 0) >= 0) {
   30465           0 :     i8 = HEAP32[i4 + 24 >> 2] | 0;
   30466           0 :     i7 = HEAP32[(HEAP32[HEAP32[i4 >> 2] >> 2] | 0) + 12 >> 2] | 0;
   30467           0 :     i7 = _luaF_getlocalname(i7, i1, ((HEAP32[i4 + 28 >> 2] | 0) - (HEAP32[i7 + 12 >> 2] | 0) >> 2) + -1 | 0) | 0;
   30468           0 :     if ((i7 | 0) == 0) {
   30469           0 :      i7 = i8;
   30470           0 :      i5 = 7;
   30471           0 :      break;
   30472           0 :     } else {
   30473           0 :      break;
   30474           0 :     }
   30475           0 :    }
   30476           0 :    i5 = HEAP32[i4 >> 2] | 0;
   30477           0 :    i6 = HEAPU8[(HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] | 0) + 76 | 0] | 0;
   30478           0 :    if ((((HEAP32[i4 + 24 >> 2] | 0) - i5 >> 4) - i6 | 0) <= (0 - i1 | 0)) {
   30479           0 :     i8 = 0;
   30480           0 :     STACKTOP = i3;
   30481           0 :     return i8 | 0;
   30482           0 :    }
   30483           0 :    HEAP32[i2 >> 2] = i5 + (i6 - i1 << 4);
   30484           0 :    i8 = 2208;
   30485           0 :    STACKTOP = i3;
   30486           0 :    return i8 | 0;
   30487           0 :   }
   30488           0 :  } while (0);
   30489           0 :  if ((i5 | 0) == 7) {
   30490           0 :   if ((HEAP32[i6 + 16 >> 2] | 0) == (i4 | 0)) {
   30491           0 :    i4 = i6 + 8 | 0;
   30492           0 :   } else {
   30493           0 :    i4 = HEAP32[i4 + 12 >> 2] | 0;
   30494           0 :   }
   30495           0 :   if (((HEAP32[i4 >> 2] | 0) - i7 >> 4 | 0) >= (i1 | 0) & (i1 | 0) > 0) {
   30496           0 :    i8 = i7;
   30497           0 :    i7 = 2192;
   30498           0 :   } else {
   30499           0 :    i8 = 0;
   30500           0 :    STACKTOP = i3;
   30501           0 :    return i8 | 0;
   30502           0 :   }
   30503           0 :  }
   30504           0 :  HEAP32[i2 >> 2] = i8 + (i1 + -1 << 4);
   30505           0 :  i8 = i7;
   30506           0 :  STACKTOP = i3;
   30507           0 :  return i8 | 0;
   30508           1 : }
   30509      284095 : function _luaH_setint(i4, i5, i6, i1) {
   30510      284095 :  i4 = i4 | 0;
   30511      284095 :  i5 = i5 | 0;
   30512      284095 :  i6 = i6 | 0;
   30513      284095 :  i1 = i1 | 0;
   30514      284095 :  var i2 = 0, i3 = 0, d7 = 0.0, i8 = 0, i9 = 0;
   30515      284095 :  i2 = STACKTOP;
   30516      284095 :  STACKTOP = STACKTOP + 32 | 0;
   30517      284095 :  i8 = i2 + 16 | 0;
   30518      284095 :  i3 = i2;
   30519      284095 :  i9 = i6 + -1 | 0;
   30520      284095 :  L1 : do {
   30521      284095 :   if (i9 >>> 0 < (HEAP32[i5 + 28 >> 2] | 0) >>> 0) {
   30522      284095 :    i9 = (HEAP32[i5 + 12 >> 2] | 0) + (i9 << 4) | 0;
   30523      284095 :    i8 = 10;
   30524      284095 :   } else {
   30525      284095 :    d7 = +(i6 | 0);
   30526      284095 :    HEAPF64[i8 >> 3] = d7 + 1.0;
   30527      284095 :    i8 = (HEAP32[i8 + 4 >> 2] | 0) + (HEAP32[i8 >> 2] | 0) | 0;
   30528      284095 :    if ((i8 | 0) < 0) {
   30529      284095 :     i9 = 0 - i8 | 0;
   30530      284095 :     i8 = (i8 | 0) == (i9 | 0) ? 0 : i9;
   30531      284095 :    }
   30532      284095 :    i9 = (HEAP32[i5 + 16 >> 2] | 0) + (((i8 | 0) % ((1 << (HEAPU8[i5 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
   30533      284095 :    while (1) {
   30534      284095 :     if ((HEAP32[i9 + 24 >> 2] | 0) == 3 ? +HEAPF64[i9 + 16 >> 3] == d7 : 0) {
   30535      284095 :      break;
   30536      284095 :     }
   30537      284095 :     i9 = HEAP32[i9 + 28 >> 2] | 0;
   30538      284095 :     if ((i9 | 0) == 0) {
   30539      284095 :      i8 = 12;
   30540      284095 :      break L1;
   30541      284095 :     }
   30542      284095 :    }
   30543      284095 :    i8 = 10;
   30544      284095 :   }
   30545      284095 :  } while (0);
   30546      284095 :  if ((i8 | 0) == 10) {
   30547      284095 :   if ((i9 | 0) == 5192) {
   30548      284095 :    d7 = +(i6 | 0);
   30549      284095 :    i8 = 12;
   30550      284095 :   }
   30551      284095 :  }
   30552      284095 :  if ((i8 | 0) == 12) {
   30553      284095 :   HEAPF64[i3 >> 3] = d7;
   30554      284095 :   HEAP32[i3 + 8 >> 2] = 3;
   30555      284095 :   i9 = _luaH_newkey(i4, i5, i3) | 0;
   30556      284095 :  }
   30557      284095 :  i5 = i1;
   30558      284095 :  i6 = HEAP32[i5 + 4 >> 2] | 0;
   30559      284095 :  i8 = i9;
   30560      284095 :  HEAP32[i8 >> 2] = HEAP32[i5 >> 2];
   30561      284095 :  HEAP32[i8 + 4 >> 2] = i6;
   30562      284095 :  HEAP32[i9 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
   30563      284095 :  STACKTOP = i2;
   30564      284095 :  return;
   30565      284095 : }
   30566          13 : function _lua_tounsignedx(i6, i8, i1) {
   30567          13 :  i6 = i6 | 0;
   30568          13 :  i8 = i8 | 0;
   30569          13 :  i1 = i1 | 0;
   30570          13 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0;
   30571          13 :  i2 = STACKTOP;
   30572          13 :  STACKTOP = STACKTOP + 32 | 0;
   30573          13 :  i4 = i2 + 8 | 0;
   30574          13 :  i3 = i2;
   30575          13 :  i7 = HEAP32[i6 + 16 >> 2] | 0;
   30576          13 :  do {
   30577          13 :   if ((i8 | 0) <= 0) {
   30578          13 :    if (!((i8 | 0) < -1000999)) {
   30579          13 :     i5 = (HEAP32[i6 + 8 >> 2] | 0) + (i8 << 4) | 0;
   30580          13 :     break;
   30581          13 :    }
   30582          13 :    if ((i8 | 0) == -1001e3) {
   30583          13 :     i5 = (HEAP32[i6 + 12 >> 2] | 0) + 40 | 0;
   30584          13 :     break;
   30585          13 :    }
   30586          13 :    i6 = -1001e3 - i8 | 0;
   30587          13 :    i7 = HEAP32[i7 >> 2] | 0;
   30588          13 :    if ((HEAP32[i7 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i7 >> 2] | 0, (i6 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
   30589          13 :     i5 = i5 + (i6 + -1 << 4) + 16 | 0;
   30590          13 :    } else {
   30591          13 :     i5 = 5192;
   30592          13 :    }
   30593          13 :   } else {
   30594          13 :    i5 = (HEAP32[i7 >> 2] | 0) + (i8 << 4) | 0;
   30595          13 :    i5 = i5 >>> 0 < (HEAP32[i6 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
   30596          13 :   }
   30597          13 :  } while (0);
   30598          13 :  if ((HEAP32[i5 + 8 >> 2] | 0) != 3) {
   30599          13 :   i5 = _luaV_tonumber(i5, i4) | 0;
   30600          13 :   if ((i5 | 0) == 0) {
   30601          13 :    if ((i1 | 0) == 0) {
   30602          13 :     i8 = 0;
   30603          13 :     STACKTOP = i2;
   30604          13 :     return i8 | 0;
   30605          13 :    }
   30606          13 :    HEAP32[i1 >> 2] = 0;
   30607          13 :    i8 = 0;
   30608          13 :    STACKTOP = i2;
   30609          13 :    return i8 | 0;
   30610          13 :   }
   30611          13 :  }
   30612          13 :  HEAPF64[i3 >> 3] = +HEAPF64[i5 >> 3] + 6755399441055744.0;
   30613          13 :  i3 = HEAP32[i3 >> 2] | 0;
   30614          13 :  if ((i1 | 0) == 0) {
   30615          13 :   i8 = i3;
   30616          13 :   STACKTOP = i2;
   30617          13 :   return i8 | 0;
   30618          13 :  }
   30619          13 :  HEAP32[i1 >> 2] = 1;
   30620          13 :  i8 = i3;
   30621          13 :  STACKTOP = i2;
   30622          13 :  return i8 | 0;
   30623          13 : }
   30624           1 : function _luaC_freeallobjects(i1) {
   30625           1 :  i1 = i1 | 0;
   30626           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
   30627           1 :  i2 = STACKTOP;
   30628           1 :  i5 = i1 + 12 | 0;
   30629           1 :  i3 = HEAP32[i5 >> 2] | 0;
   30630           1 :  i7 = i3 + 104 | 0;
   30631           1 :  while (1) {
   30632           1 :   i4 = HEAP32[i7 >> 2] | 0;
   30633           1 :   if ((i4 | 0) == 0) {
   30634           1 :    break;
   30635           1 :   } else {
   30636           1 :    i7 = i4;
   30637           1 :   }
   30638           1 :  }
   30639           1 :  i4 = i3 + 72 | 0;
   30640           1 :  i6 = HEAP32[i4 >> 2] | 0;
   30641           1 :  if ((i6 | 0) == 0) {
   30642           1 :   i5 = i3;
   30643           1 :  } else {
   30644           1 :   while (1) {
   30645           1 :    i8 = i6 + 5 | 0;
   30646           1 :    HEAP8[i8] = HEAPU8[i8] | 0 | 8;
   30647           1 :    HEAP32[i4 >> 2] = HEAP32[i6 >> 2];
   30648           1 :    HEAP32[i6 >> 2] = HEAP32[i7 >> 2];
   30649           1 :    HEAP32[i7 >> 2] = i6;
   30650           1 :    i7 = HEAP32[i4 >> 2] | 0;
   30651           1 :    if ((i7 | 0) == 0) {
   30652           1 :     break;
   30653           1 :    } else {
   30654           1 :     i8 = i6;
   30655           1 :     i6 = i7;
   30656           1 :     i7 = i8;
   30657           1 :    }
   30658           1 :   }
   30659           1 :   i5 = HEAP32[i5 >> 2] | 0;
   30660           1 :  }
   30661           1 :  i5 = i5 + 104 | 0;
   30662           1 :  i6 = HEAP32[i5 >> 2] | 0;
   30663           1 :  if ((i6 | 0) != 0) {
   30664           1 :   do {
   30665           1 :    i8 = i6 + 5 | 0;
   30666           1 :    HEAP8[i8] = HEAP8[i8] & 191;
   30667           1 :    _GCTM(i1, 0);
   30668           1 :    i6 = HEAP32[i5 >> 2] | 0;
   30669           1 :   } while ((i6 | 0) != 0);
   30670           1 :  }
   30671           1 :  HEAP8[i3 + 60 | 0] = 3;
   30672           1 :  HEAP8[i3 + 62 | 0] = 0;
   30673           1 :  _sweeplist(i1, i4, -3) | 0;
   30674           1 :  _sweeplist(i1, i3 + 68 | 0, -3) | 0;
   30675           1 :  i4 = i3 + 32 | 0;
   30676           1 :  if ((HEAP32[i4 >> 2] | 0) <= 0) {
   30677           1 :   STACKTOP = i2;
   30678           1 :   return;
   30679           1 :  }
   30680           1 :  i3 = i3 + 24 | 0;
   30681           1 :  i5 = 0;
   30682           1 :  do {
   30683           1 :   _sweeplist(i1, (HEAP32[i3 >> 2] | 0) + (i5 << 2) | 0, -3) | 0;
   30684           1 :   i5 = i5 + 1 | 0;
   30685           1 :  } while ((i5 | 0) < (HEAP32[i4 >> 2] | 0));
   30686           1 :  STACKTOP = i2;
   30687           1 :  return;
   30688           1 : }
   30689           1 : function _strspn(i1, i5) {
   30690           0 :  i1 = i1 | 0;
   30691           0 :  i5 = i5 | 0;
   30692           0 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
   30693           0 :  i2 = STACKTOP;
   30694           0 :  STACKTOP = STACKTOP + 32 | 0;
   30695           0 :  i3 = i2;
   30696           0 :  HEAP32[i3 + 0 >> 2] = 0;
   30697           0 :  HEAP32[i3 + 4 >> 2] = 0;
   30698           0 :  HEAP32[i3 + 8 >> 2] = 0;
   30699           0 :  HEAP32[i3 + 12 >> 2] = 0;
   30700           0 :  HEAP32[i3 + 16 >> 2] = 0;
   30701           0 :  HEAP32[i3 + 20 >> 2] = 0;
   30702           0 :  HEAP32[i3 + 24 >> 2] = 0;
   30703           0 :  HEAP32[i3 + 28 >> 2] = 0;
   30704           0 :  i4 = HEAP8[i5] | 0;
   30705           0 :  if (i4 << 24 >> 24 == 0) {
   30706           0 :   i6 = 0;
   30707           0 :   STACKTOP = i2;
   30708           0 :   return i6 | 0;
   30709           0 :  }
   30710           0 :  if ((HEAP8[i5 + 1 | 0] | 0) == 0) {
   30711           0 :   i3 = i1;
   30712           0 :   while (1) {
   30713           0 :    if ((HEAP8[i3] | 0) == i4 << 24 >> 24) {
   30714           0 :     i3 = i3 + 1 | 0;
   30715           0 :    } else {
   30716           0 :     break;
   30717           0 :    }
   30718           0 :   }
   30719           0 :   i6 = i3 - i1 | 0;
   30720           0 :   STACKTOP = i2;
   30721           0 :   return i6 | 0;
   30722           0 :  }
   30723           0 :  do {
   30724           0 :   i7 = i4 & 255;
   30725           0 :   i6 = i3 + (i7 >>> 5 << 2) | 0;
   30726           0 :   HEAP32[i6 >> 2] = HEAP32[i6 >> 2] | 1 << (i7 & 31);
   30727           0 :   i5 = i5 + 1 | 0;
   30728           0 :   i4 = HEAP8[i5] | 0;
   30729           0 :  } while (!(i4 << 24 >> 24 == 0));
   30730           0 :  i5 = HEAP8[i1] | 0;
   30731           0 :  L12 : do {
   30732           0 :   if (i5 << 24 >> 24 == 0) {
   30733           0 :    i4 = i1;
   30734           0 :   } else {
   30735           0 :    i4 = i1;
   30736           0 :    while (1) {
   30737           0 :     i7 = i5 & 255;
   30738           0 :     i6 = i4 + 1 | 0;
   30739           0 :     if ((HEAP32[i3 + (i7 >>> 5 << 2) >> 2] & 1 << (i7 & 31) | 0) == 0) {
   30740           0 :      break L12;
   30741           0 :     }
   30742           0 :     i5 = HEAP8[i6] | 0;
   30743           0 :     if (i5 << 24 >> 24 == 0) {
   30744           0 :      i4 = i6;
   30745           0 :      break;
   30746           0 :     } else {
   30747           0 :      i4 = i6;
   30748           0 :     }
   30749           0 :    }
   30750           0 :   }
   30751           0 :  } while (0);
   30752           0 :  i7 = i4 - i1 | 0;
   30753           0 :  STACKTOP = i2;
   30754           0 :  return i7 | 0;
   30755           1 : }
   30756           2 : function _lua_remove(i2, i4) {
   30757           2 :  i2 = i2 | 0;
   30758           2 :  i4 = i4 | 0;
   30759           2 :  var i1 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0;
   30760           2 :  i1 = STACKTOP;
   30761           2 :  i5 = HEAP32[i2 + 16 >> 2] | 0;
   30762           2 :  do {
   30763           2 :   if ((i4 | 0) <= 0) {
   30764           2 :    if (!((i4 | 0) < -1000999)) {
   30765           2 :     i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
   30766           2 :     break;
   30767           2 :    }
   30768           2 :    if ((i4 | 0) == -1001e3) {
   30769           2 :     i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   30770           2 :     break;
   30771           2 :    }
   30772           2 :    i4 = -1001e3 - i4 | 0;
   30773           2 :    i5 = HEAP32[i5 >> 2] | 0;
   30774           2 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   30775           2 :     i3 = i3 + (i4 + -1 << 4) + 16 | 0;
   30776           2 :    } else {
   30777           2 :     i3 = 5192;
   30778           2 :    }
   30779           2 :   } else {
   30780           2 :    i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0;
   30781           2 :    i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   30782           2 :   }
   30783           2 :  } while (0);
   30784           2 :  i4 = i3 + 16 | 0;
   30785           2 :  i2 = i2 + 8 | 0;
   30786           2 :  i5 = HEAP32[i2 >> 2] | 0;
   30787           2 :  if (!(i4 >>> 0 < i5 >>> 0)) {
   30788           2 :   i5 = i5 + -16 | 0;
   30789           2 :   HEAP32[i2 >> 2] = i5;
   30790           2 :   STACKTOP = i1;
   30791           2 :   return;
   30792           2 :  }
   30793           2 :  while (1) {
   30794           2 :   i7 = i4;
   30795           2 :   i6 = HEAP32[i7 + 4 >> 2] | 0;
   30796           2 :   i5 = i3;
   30797           2 :   HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
   30798           2 :   HEAP32[i5 + 4 >> 2] = i6;
   30799           2 :   HEAP32[i3 + 8 >> 2] = HEAP32[i3 + 24 >> 2];
   30800           2 :   i5 = i4 + 16 | 0;
   30801           2 :   i3 = HEAP32[i2 >> 2] | 0;
   30802           2 :   if (i5 >>> 0 < i3 >>> 0) {
   30803           2 :    i3 = i4;
   30804           2 :    i4 = i5;
   30805           2 :   } else {
   30806           2 :    break;
   30807           2 :   }
   30808           2 :  }
   30809           2 :  i7 = i3 + -16 | 0;
   30810           2 :  HEAP32[i2 >> 2] = i7;
   30811           2 :  STACKTOP = i1;
   30812           2 :  return;
   30813           2 : }
   30814           1 : function _luaD_protectedparser(i1, i4, i3, i2) {
   30815           1 :  i1 = i1 | 0;
   30816           1 :  i4 = i4 | 0;
   30817           1 :  i3 = i3 | 0;
   30818           1 :  i2 = i2 | 0;
   30819           1 :  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
   30820           1 :  i5 = STACKTOP;
   30821           1 :  STACKTOP = STACKTOP + 64 | 0;
   30822           1 :  i13 = i5;
   30823           1 :  i6 = i1 + 36 | 0;
   30824           1 :  HEAP16[i6 >> 1] = (HEAP16[i6 >> 1] | 0) + 1 << 16 >> 16;
   30825           1 :  HEAP32[i13 >> 2] = i4;
   30826           1 :  HEAP32[i13 + 56 >> 2] = i3;
   30827           1 :  HEAP32[i13 + 52 >> 2] = i2;
   30828           1 :  i10 = i13 + 16 | 0;
   30829           1 :  HEAP32[i10 >> 2] = 0;
   30830           1 :  i9 = i13 + 24 | 0;
   30831           1 :  HEAP32[i9 >> 2] = 0;
   30832           1 :  i8 = i13 + 28 | 0;
   30833           1 :  HEAP32[i8 >> 2] = 0;
   30834           1 :  i7 = i13 + 36 | 0;
   30835           1 :  HEAP32[i7 >> 2] = 0;
   30836           1 :  i2 = i13 + 40 | 0;
   30837           1 :  HEAP32[i2 >> 2] = 0;
   30838           1 :  i3 = i13 + 48 | 0;
   30839           1 :  HEAP32[i3 >> 2] = 0;
   30840           1 :  i12 = i13 + 4 | 0;
   30841           1 :  HEAP32[i12 >> 2] = 0;
   30842           1 :  i11 = i13 + 12 | 0;
   30843           1 :  HEAP32[i11 >> 2] = 0;
   30844           1 :  i4 = _luaD_pcall(i1, 6, i13, (HEAP32[i1 + 8 >> 2] | 0) - (HEAP32[i1 + 28 >> 2] | 0) | 0, HEAP32[i1 + 68 >> 2] | 0) | 0;
   30845           1 :  HEAP32[i12 >> 2] = _luaM_realloc_(i1, HEAP32[i12 >> 2] | 0, HEAP32[i11 >> 2] | 0, 0) | 0;
   30846           1 :  HEAP32[i11 >> 2] = 0;
   30847           1 :  _luaM_realloc_(i1, HEAP32[i10 >> 2] | 0, HEAP32[i9 >> 2] << 1, 0) | 0;
   30848           1 :  _luaM_realloc_(i1, HEAP32[i8 >> 2] | 0, HEAP32[i7 >> 2] << 4, 0) | 0;
   30849           1 :  _luaM_realloc_(i1, HEAP32[i2 >> 2] | 0, HEAP32[i3 >> 2] << 4, 0) | 0;
   30850           1 :  HEAP16[i6 >> 1] = (HEAP16[i6 >> 1] | 0) + -1 << 16 >> 16;
   30851           1 :  STACKTOP = i5;
   30852           1 :  return i4 | 0;
   30853           1 : }
   30854          44 : function _markmt(i1) {
   30855          44 :  i1 = i1 | 0;
   30856          44 :  var i2 = 0, i3 = 0;
   30857          44 :  i2 = STACKTOP;
   30858          44 :  i3 = HEAP32[i1 + 252 >> 2] | 0;
   30859          44 :  if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
   30860          44 :   _reallymarkobject(i1, i3);
   30861          44 :  }
   30862          44 :  i3 = HEAP32[i1 + 256 >> 2] | 0;
   30863          44 :  if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
   30864          44 :   _reallymarkobject(i1, i3);
   30865          44 :  }
   30866          44 :  i3 = HEAP32[i1 + 260 >> 2] | 0;
   30867          44 :  if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
   30868          44 :   _reallymarkobject(i1, i3);
   30869          44 :  }
   30870          44 :  i3 = HEAP32[i1 + 264 >> 2] | 0;
   30871          44 :  if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
   30872          44 :   _reallymarkobject(i1, i3);
   30873          44 :  }
   30874          44 :  i3 = HEAP32[i1 + 268 >> 2] | 0;
   30875          44 :  if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
   30876          44 :   _reallymarkobject(i1, i3);
   30877          44 :  }
   30878          44 :  i3 = HEAP32[i1 + 272 >> 2] | 0;
   30879          44 :  if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
   30880          44 :   _reallymarkobject(i1, i3);
   30881          44 :  }
   30882          44 :  i3 = HEAP32[i1 + 276 >> 2] | 0;
   30883          44 :  if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
   30884          44 :   _reallymarkobject(i1, i3);
   30885          44 :  }
   30886          44 :  i3 = HEAP32[i1 + 280 >> 2] | 0;
   30887          44 :  if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
   30888          44 :   _reallymarkobject(i1, i3);
   30889          44 :  }
   30890          44 :  i3 = HEAP32[i1 + 284 >> 2] | 0;
   30891          44 :  if ((i3 | 0) == 0) {
   30892          44 :   STACKTOP = i2;
   30893          44 :   return;
   30894          44 :  }
   30895          44 :  if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
   30896          44 :   STACKTOP = i2;
   30897          44 :   return;
   30898          44 :  }
   30899          44 :  _reallymarkobject(i1, i3);
   30900          44 :  STACKTOP = i2;
   30901          44 :  return;
   30902          44 : }
   30903           1 : function _findlabel(i9, i2) {
   30904           0 :  i9 = i9 | 0;
   30905           0 :  i2 = i2 | 0;
   30906           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
   30907           0 :  i1 = STACKTOP;
   30908           0 :  i3 = i9 + 48 | 0;
   30909           0 :  i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0;
   30910           0 :  i10 = HEAP32[i9 + 64 >> 2] | 0;
   30911           0 :  i4 = HEAP32[i10 + 12 >> 2] | 0;
   30912           0 :  i6 = i7 + 4 | 0;
   30913           0 :  i13 = HEAP16[i6 >> 1] | 0;
   30914           0 :  i5 = i10 + 28 | 0;
   30915           0 :  if ((i13 | 0) >= (HEAP32[i5 >> 2] | 0)) {
   30916           0 :   i15 = 0;
   30917           0 :   STACKTOP = i1;
   30918           0 :   return i15 | 0;
   30919           0 :  }
   30920           0 :  i10 = i10 + 24 | 0;
   30921           0 :  i11 = i4 + (i2 << 4) | 0;
   30922           0 :  while (1) {
   30923           0 :   i14 = HEAP32[i10 >> 2] | 0;
   30924           0 :   i12 = i14 + (i13 << 4) | 0;
   30925           0 :   i15 = i13 + 1 | 0;
   30926           0 :   if ((_luaS_eqstr(HEAP32[i12 >> 2] | 0, HEAP32[i11 >> 2] | 0) | 0) != 0) {
   30927           0 :    break;
   30928           0 :   }
   30929           0 :   if ((i15 | 0) < (HEAP32[i5 >> 2] | 0)) {
   30930           0 :    i13 = i15;
   30931           0 :   } else {
   30932           0 :    i2 = 0;
   30933           0 :    i8 = 10;
   30934           0 :    break;
   30935           0 :   }
   30936           0 :  }
   30937           0 :  if ((i8 | 0) == 10) {
   30938           0 :   STACKTOP = i1;
   30939           0 :   return i2 | 0;
   30940           0 :  }
   30941           0 :  i8 = HEAP8[i14 + (i13 << 4) + 12 | 0] | 0;
   30942           0 :  do {
   30943           0 :   if ((HEAPU8[i4 + (i2 << 4) + 12 | 0] | 0) > (i8 & 255)) {
   30944           0 :    if ((HEAP8[i7 + 9 | 0] | 0) == 0 ? (HEAP32[i5 >> 2] | 0) <= (HEAP16[i6 >> 1] | 0) : 0) {
   30945           0 :     break;
   30946           0 :    }
   30947           0 :    _luaK_patchclose(HEAP32[i3 >> 2] | 0, HEAP32[i4 + (i2 << 4) + 4 >> 2] | 0, i8 & 255);
   30948           0 :   }
   30949           0 :  } while (0);
   30950           0 :  _closegoto(i9, i2, i12);
   30951           0 :  i15 = 1;
   30952           0 :  STACKTOP = i1;
   30953           0 :  return i15 | 0;
   30954           1 : }
   30955           9 : function _lua_getmetatable(i1, i5) {
   30956           9 :  i1 = i1 | 0;
   30957           9 :  i5 = i5 | 0;
   30958           9 :  var i2 = 0, i3 = 0, i4 = 0;
   30959           9 :  i2 = STACKTOP;
   30960           9 :  i4 = HEAP32[i1 + 16 >> 2] | 0;
   30961           9 :  do {
   30962           9 :   if ((i5 | 0) <= 0) {
   30963           9 :    if (!((i5 | 0) < -1000999)) {
   30964           9 :     i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
   30965           9 :     break;
   30966           9 :    }
   30967           9 :    if ((i5 | 0) == -1001e3) {
   30968           9 :     i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   30969           9 :     break;
   30970           9 :    }
   30971           9 :    i5 = -1001e3 - i5 | 0;
   30972           9 :    i4 = HEAP32[i4 >> 2] | 0;
   30973           9 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   30974           9 :     i4 = i3 + (i5 + -1 << 4) + 16 | 0;
   30975           9 :    } else {
   30976           9 :     i4 = 5192;
   30977           9 :    }
   30978           9 :   } else {
   30979           9 :    i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   30980           9 :    i4 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   30981           9 :   }
   30982           9 :  } while (0);
   30983           9 :  i3 = HEAP32[i4 + 8 >> 2] & 15;
   30984           9 :  if ((i3 | 0) == 7) {
   30985           9 :   i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
   30986           9 :  } else if ((i3 | 0) == 5) {
   30987           9 :   i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
   30988           9 :  } else {
   30989           9 :   i3 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i3 << 2) + 252 >> 2] | 0;
   30990           9 :  }
   30991           9 :  if ((i3 | 0) == 0) {
   30992           9 :   i5 = 0;
   30993           9 :   STACKTOP = i2;
   30994           9 :   return i5 | 0;
   30995           9 :  }
   30996           9 :  i5 = i1 + 8 | 0;
   30997           9 :  i4 = HEAP32[i5 >> 2] | 0;
   30998           9 :  HEAP32[i4 >> 2] = i3;
   30999           9 :  HEAP32[i4 + 8 >> 2] = 69;
   31000           9 :  HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
   31001           9 :  i5 = 1;
   31002           9 :  STACKTOP = i2;
   31003           9 :  return i5 | 0;
   31004           9 : }
   31005           1 : function _str_byte(i2) {
   31006           0 :  i2 = i2 | 0;
   31007           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   31008           0 :  i1 = STACKTOP;
   31009           0 :  STACKTOP = STACKTOP + 16 | 0;
   31010           0 :  i6 = i1;
   31011           0 :  i4 = i1 + 4 | 0;
   31012           0 :  i3 = _luaL_checklstring(i2, 1, i4) | 0;
   31013           0 :  i5 = _luaL_optinteger(i2, 2, 1) | 0;
   31014           0 :  i7 = HEAP32[i4 >> 2] | 0;
   31015           0 :  if (!((i5 | 0) > -1)) {
   31016           0 :   if (i7 >>> 0 < (0 - i5 | 0) >>> 0) {
   31017           0 :    i5 = 0;
   31018           0 :   } else {
   31019           0 :    i5 = i5 + 1 + i7 | 0;
   31020           0 :   }
   31021           0 :  }
   31022           0 :  i8 = _luaL_optinteger(i2, 3, i5) | 0;
   31023           0 :  i7 = HEAP32[i4 >> 2] | 0;
   31024           0 :  if (!((i8 | 0) > -1)) {
   31025           0 :   if (i7 >>> 0 < (0 - i8 | 0) >>> 0) {
   31026           0 :    i8 = 0;
   31027           0 :   } else {
   31028           0 :    i8 = i8 + 1 + i7 | 0;
   31029           0 :   }
   31030           0 :  }
   31031           0 :  i9 = (i5 | 0) == 0 ? 1 : i5;
   31032           0 :  i10 = i8 >>> 0 > i7 >>> 0 ? i7 : i8;
   31033           0 :  if (i9 >>> 0 > i10 >>> 0) {
   31034           0 :   i10 = 0;
   31035           0 :   STACKTOP = i1;
   31036           0 :   return i10 | 0;
   31037           0 :  }
   31038           0 :  i4 = i10 - i9 + 1 | 0;
   31039           0 :  if ((i10 | 0) == -1) {
   31040           0 :   i10 = _luaL_error(i2, 7944, i6) | 0;
   31041           0 :   STACKTOP = i1;
   31042           0 :   return i10 | 0;
   31043           0 :  }
   31044           0 :  _luaL_checkstack(i2, i4, 7944);
   31045           0 :  if ((i4 | 0) <= 0) {
   31046           0 :   i10 = i4;
   31047           0 :   STACKTOP = i1;
   31048           0 :   return i10 | 0;
   31049           0 :  }
   31050           0 :  i6 = i9 + -1 | 0;
   31051           0 :  i8 = ~i8;
   31052           0 :  i7 = ~i7;
   31053           0 :  i5 = 0 - (i8 >>> 0 > i7 >>> 0 ? i8 : i7) - (i5 >>> 0 > 1 ? i5 : 1) | 0;
   31054           0 :  i7 = 0;
   31055           0 :  do {
   31056           0 :   _lua_pushinteger(i2, HEAPU8[i3 + (i6 + i7) | 0] | 0);
   31057           0 :   i7 = i7 + 1 | 0;
   31058           0 :  } while ((i7 | 0) != (i5 | 0));
   31059           0 :  STACKTOP = i1;
   31060           0 :  return i4 | 0;
   31061           1 : }
   31062           1 : function _lua_setuservalue(i1, i5) {
   31063           0 :  i1 = i1 | 0;
   31064           0 :  i5 = i5 | 0;
   31065           0 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
   31066           0 :  i3 = STACKTOP;
   31067           0 :  i6 = HEAP32[i1 + 16 >> 2] | 0;
   31068           0 :  do {
   31069           0 :   if ((i5 | 0) <= 0) {
   31070           0 :    if (!((i5 | 0) < -1000999)) {
   31071           0 :     i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
   31072           0 :     break;
   31073           0 :    }
   31074           0 :    if ((i5 | 0) == -1001e3) {
   31075           0 :     i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   31076           0 :     break;
   31077           0 :    }
   31078           0 :    i5 = -1001e3 - i5 | 0;
   31079           0 :    i6 = HEAP32[i6 >> 2] | 0;
   31080           0 :    if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   31081           0 :     i5 = i4 + (i5 + -1 << 4) + 16 | 0;
   31082           0 :    } else {
   31083           0 :     i5 = 5192;
   31084           0 :    }
   31085           0 :   } else {
   31086           0 :    i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0;
   31087           0 :    i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   31088           0 :   }
   31089           0 :  } while (0);
   31090           0 :  i4 = i1 + 8 | 0;
   31091           0 :  i6 = HEAP32[i4 >> 2] | 0;
   31092           0 :  if ((HEAP32[i6 + -8 >> 2] | 0) != 0) {
   31093           0 :   HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] = HEAP32[i6 + -16 >> 2];
   31094           0 :   i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + -16 >> 2] | 0;
   31095           0 :   if (!((HEAP8[i6 + 5 | 0] & 3) == 0) ? (i2 = HEAP32[i5 >> 2] | 0, !((HEAP8[i2 + 5 | 0] & 4) == 0)) : 0) {
   31096           0 :    _luaC_barrier_(i1, i2, i6);
   31097           0 :   }
   31098           0 :  } else {
   31099           0 :   HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] = 0;
   31100           0 :  }
   31101           0 :  HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16;
   31102           0 :  STACKTOP = i3;
   31103           0 :  return;
   31104           1 : }
   31105           1 : function _f_luaopen(i1, i2) {
   31106           1 :  i1 = i1 | 0;
   31107           1 :  i2 = i2 | 0;
   31108           1 :  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   31109           1 :  i6 = STACKTOP;
   31110           1 :  STACKTOP = STACKTOP + 16 | 0;
   31111           1 :  i5 = i6;
   31112           1 :  i4 = HEAP32[i1 + 12 >> 2] | 0;
   31113           1 :  i2 = _luaM_realloc_(i1, 0, 0, 640) | 0;
   31114           1 :  HEAP32[i1 + 28 >> 2] = i2;
   31115           1 :  i3 = i1 + 32 | 0;
   31116           1 :  HEAP32[i3 >> 2] = 40;
   31117           1 :  i7 = 0;
   31118           1 :  do {
   31119           1 :   HEAP32[i2 + (i7 << 4) + 8 >> 2] = 0;
   31120           1 :   i7 = i7 + 1 | 0;
   31121           1 :  } while ((i7 | 0) != 40);
   31122           1 :  HEAP32[i1 + 24 >> 2] = i2 + ((HEAP32[i3 >> 2] | 0) + -5 << 4);
   31123           1 :  i7 = i1 + 72 | 0;
   31124           1 :  HEAP32[i1 + 80 >> 2] = 0;
   31125           1 :  HEAP32[i1 + 84 >> 2] = 0;
   31126           1 :  HEAP8[i1 + 90 | 0] = 0;
   31127           1 :  HEAP32[i7 >> 2] = i2;
   31128           1 :  HEAP32[i1 + 8 >> 2] = i2 + 16;
   31129           1 :  HEAP32[i2 + 8 >> 2] = 0;
   31130           1 :  HEAP32[i1 + 76 >> 2] = i2 + 336;
   31131           1 :  HEAP32[i1 + 16 >> 2] = i7;
   31132           1 :  i7 = _luaH_new(i1) | 0;
   31133           1 :  HEAP32[i4 + 40 >> 2] = i7;
   31134           1 :  HEAP32[i4 + 48 >> 2] = 69;
   31135           1 :  _luaH_resize(i1, i7, 2, 0);
   31136           1 :  HEAP32[i5 >> 2] = i1;
   31137           1 :  i3 = i5 + 8 | 0;
   31138           1 :  HEAP32[i3 >> 2] = 72;
   31139           1 :  _luaH_setint(i1, i7, 1, i5);
   31140           1 :  HEAP32[i5 >> 2] = _luaH_new(i1) | 0;
   31141           1 :  HEAP32[i3 >> 2] = 69;
   31142           1 :  _luaH_setint(i1, i7, 2, i5);
   31143           1 :  _luaS_resize(i1, 32);
   31144           1 :  _luaT_init(i1);
   31145           1 :  _luaX_init(i1);
   31146           1 :  i7 = _luaS_newlstr(i1, 6896, 17) | 0;
   31147           1 :  HEAP32[i4 + 180 >> 2] = i7;
   31148           1 :  i7 = i7 + 5 | 0;
   31149           1 :  HEAP8[i7] = HEAPU8[i7] | 0 | 32;
   31150           1 :  HEAP8[i4 + 63 | 0] = 1;
   31151           1 :  STACKTOP = i6;
   31152           1 :  return;
   31153           1 : }
   31154          15 : function _lua_tointegerx(i6, i7, i1) {
   31155          15 :  i6 = i6 | 0;
   31156          15 :  i7 = i7 | 0;
   31157          15 :  i1 = i1 | 0;
   31158          15 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   31159          15 :  i2 = STACKTOP;
   31160          15 :  STACKTOP = STACKTOP + 16 | 0;
   31161          15 :  i3 = i2;
   31162          15 :  i5 = HEAP32[i6 + 16 >> 2] | 0;
   31163          15 :  do {
   31164          15 :   if ((i7 | 0) <= 0) {
   31165          15 :    if (!((i7 | 0) < -1000999)) {
   31166          15 :     i4 = (HEAP32[i6 + 8 >> 2] | 0) + (i7 << 4) | 0;
   31167          15 :     break;
   31168          15 :    }
   31169          15 :    if ((i7 | 0) == -1001e3) {
   31170          15 :     i4 = (HEAP32[i6 + 12 >> 2] | 0) + 40 | 0;
   31171          15 :     break;
   31172          15 :    }
   31173          15 :    i6 = -1001e3 - i7 | 0;
   31174          15 :    i5 = HEAP32[i5 >> 2] | 0;
   31175          15 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   31176          15 :     i4 = i4 + (i6 + -1 << 4) + 16 | 0;
   31177          15 :    } else {
   31178          15 :     i4 = 5192;
   31179          15 :    }
   31180          15 :   } else {
   31181          15 :    i4 = (HEAP32[i5 >> 2] | 0) + (i7 << 4) | 0;
   31182          15 :    i4 = i4 >>> 0 < (HEAP32[i6 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   31183          15 :   }
   31184          15 :  } while (0);
   31185          15 :  if ((HEAP32[i4 + 8 >> 2] | 0) != 3) {
   31186          15 :   i4 = _luaV_tonumber(i4, i3) | 0;
   31187          15 :   if ((i4 | 0) == 0) {
   31188          15 :    if ((i1 | 0) == 0) {
   31189          15 :     i7 = 0;
   31190          15 :     STACKTOP = i2;
   31191          15 :     return i7 | 0;
   31192          15 :    }
   31193          15 :    HEAP32[i1 >> 2] = 0;
   31194          15 :    i7 = 0;
   31195          15 :    STACKTOP = i2;
   31196          15 :    return i7 | 0;
   31197          15 :   }
   31198          15 :  }
   31199          15 :  i3 = ~~+HEAPF64[i4 >> 3];
   31200          15 :  if ((i1 | 0) == 0) {
   31201          15 :   i7 = i3;
   31202          15 :   STACKTOP = i2;
   31203          15 :   return i7 | 0;
   31204          15 :  }
   31205          15 :  HEAP32[i1 >> 2] = 1;
   31206          15 :  i7 = i3;
   31207          15 :  STACKTOP = i2;
   31208          15 :  return i7 | 0;
   31209          15 : }
   31210           1 : function _close_state(i1) {
   31211           1 :  i1 = i1 | 0;
   31212           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   31213           1 :  i2 = STACKTOP;
   31214           1 :  i6 = i1 + 12 | 0;
   31215           1 :  i3 = HEAP32[i6 >> 2] | 0;
   31216           1 :  i4 = i1 + 28 | 0;
   31217           1 :  _luaF_close(i1, HEAP32[i4 >> 2] | 0);
   31218           1 :  _luaC_freeallobjects(i1);
   31219           1 :  i6 = HEAP32[i6 >> 2] | 0;
   31220           1 :  _luaM_realloc_(i1, HEAP32[i6 + 24 >> 2] | 0, HEAP32[i6 + 32 >> 2] << 2, 0) | 0;
   31221           1 :  i6 = i3 + 144 | 0;
   31222           1 :  i5 = i3 + 152 | 0;
   31223           1 :  HEAP32[i6 >> 2] = _luaM_realloc_(i1, HEAP32[i6 >> 2] | 0, HEAP32[i5 >> 2] | 0, 0) | 0;
   31224           1 :  HEAP32[i5 >> 2] = 0;
   31225           1 :  i5 = HEAP32[i4 >> 2] | 0;
   31226           1 :  if ((i5 | 0) == 0) {
   31227           1 :   i5 = HEAP32[i3 >> 2] | 0;
   31228           1 :   i6 = i3 + 4 | 0;
   31229           1 :   i6 = HEAP32[i6 >> 2] | 0;
   31230           1 :   FUNCTION_TABLE_iiiii[i5 & 3](i6, i1, 400, 0) | 0;
   31231           1 :   STACKTOP = i2;
   31232           1 :   return;
   31233           1 :  }
   31234           1 :  HEAP32[i1 + 16 >> 2] = i1 + 72;
   31235           1 :  i7 = i1 + 84 | 0;
   31236           1 :  i6 = HEAP32[i7 >> 2] | 0;
   31237           1 :  HEAP32[i7 >> 2] = 0;
   31238           1 :  if ((i6 | 0) != 0) {
   31239           1 :   while (1) {
   31240           1 :    i5 = HEAP32[i6 + 12 >> 2] | 0;
   31241           1 :    _luaM_realloc_(i1, i6, 40, 0) | 0;
   31242           1 :    if ((i5 | 0) == 0) {
   31243           1 :     break;
   31244           1 :    } else {
   31245           1 :     i6 = i5;
   31246           1 :    }
   31247           1 :   }
   31248           1 :   i5 = HEAP32[i4 >> 2] | 0;
   31249           1 :  }
   31250           1 :  _luaM_realloc_(i1, i5, HEAP32[i1 + 32 >> 2] << 4, 0) | 0;
   31251           1 :  i6 = HEAP32[i3 >> 2] | 0;
   31252           1 :  i7 = i3 + 4 | 0;
   31253           1 :  i7 = HEAP32[i7 >> 2] | 0;
   31254           1 :  FUNCTION_TABLE_iiiii[i6 & 3](i7, i1, 400, 0) | 0;
   31255           1 :  STACKTOP = i2;
   31256           1 :  return;
   31257           1 : }
   31258           1 : function _ll_module(i1) {
   31259           0 :  i1 = i1 | 0;
   31260           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   31261           0 :  i2 = STACKTOP;
   31262           0 :  STACKTOP = STACKTOP + 112 | 0;
   31263           0 :  i4 = i2;
   31264           0 :  i5 = i2 + 4 | 0;
   31265           0 :  i6 = _luaL_checklstring(i1, 1, 0) | 0;
   31266           0 :  i3 = _lua_gettop(i1) | 0;
   31267           0 :  _luaL_pushmodule(i1, i6, 1);
   31268           0 :  _lua_getfield(i1, -1, 4728);
   31269           0 :  i7 = (_lua_type(i1, -1) | 0) == 0;
   31270           0 :  _lua_settop(i1, -2);
   31271           0 :  if (i7) {
   31272           0 :   _lua_pushvalue(i1, -1);
   31273           0 :   _lua_setfield(i1, -2, 4784);
   31274           0 :   _lua_pushstring(i1, i6) | 0;
   31275           0 :   _lua_setfield(i1, -2, 4728);
   31276           0 :   i7 = _strrchr(i6, 46) | 0;
   31277           0 :   _lua_pushlstring(i1, i6, ((i7 | 0) == 0 ? i6 : i7 + 1 | 0) - i6 | 0) | 0;
   31278           0 :   _lua_setfield(i1, -2, 4792);
   31279           0 :  }
   31280           0 :  _lua_pushvalue(i1, -1);
   31281           0 :  if (!(((_lua_getstack(i1, 1, i5) | 0) != 0 ? (_lua_getinfo(i1, 4736, i5) | 0) != 0 : 0) ? (_lua_iscfunction(i1, -1) | 0) == 0 : 0)) {
   31282           0 :   _luaL_error(i1, 4744, i4) | 0;
   31283           0 :  }
   31284           0 :  _lua_pushvalue(i1, -2);
   31285           0 :  _lua_setupvalue(i1, -2, 1) | 0;
   31286           0 :  _lua_settop(i1, -2);
   31287           0 :  if ((i3 | 0) < 2) {
   31288           0 :   STACKTOP = i2;
   31289           0 :   return 1;
   31290           0 :  } else {
   31291           0 :   i4 = 2;
   31292           0 :  }
   31293           0 :  while (1) {
   31294           0 :   if ((_lua_type(i1, i4) | 0) == 6) {
   31295           0 :    _lua_pushvalue(i1, i4);
   31296           0 :    _lua_pushvalue(i1, -2);
   31297           0 :    _lua_callk(i1, 1, 0, 0, 0);
   31298           0 :   }
   31299           0 :   if ((i4 | 0) == (i3 | 0)) {
   31300           0 :    break;
   31301           0 :   } else {
   31302           0 :    i4 = i4 + 1 | 0;
   31303           0 :   }
   31304           0 :  }
   31305           0 :  STACKTOP = i2;
   31306           0 :  return 1;
   31307           1 : }
   31308          70 : function _strcspn(i2, i5) {
   31309          70 :  i2 = i2 | 0;
   31310          70 :  i5 = i5 | 0;
   31311          70 :  var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
   31312          70 :  i1 = STACKTOP;
   31313          70 :  STACKTOP = STACKTOP + 32 | 0;
   31314          70 :  i3 = i1;
   31315          70 :  i4 = HEAP8[i5] | 0;
   31316          70 :  if (!(i4 << 24 >> 24 == 0) ? (HEAP8[i5 + 1 | 0] | 0) != 0 : 0) {
   31317          70 :   HEAP32[i3 + 0 >> 2] = 0;
   31318          70 :   HEAP32[i3 + 4 >> 2] = 0;
   31319          70 :   HEAP32[i3 + 8 >> 2] = 0;
   31320          70 :   HEAP32[i3 + 12 >> 2] = 0;
   31321          70 :   HEAP32[i3 + 16 >> 2] = 0;
   31322          70 :   HEAP32[i3 + 20 >> 2] = 0;
   31323          70 :   HEAP32[i3 + 24 >> 2] = 0;
   31324          70 :   HEAP32[i3 + 28 >> 2] = 0;
   31325          70 :   do {
   31326          70 :    i7 = i4 & 255;
   31327          70 :    i6 = i3 + (i7 >>> 5 << 2) | 0;
   31328          70 :    HEAP32[i6 >> 2] = HEAP32[i6 >> 2] | 1 << (i7 & 31);
   31329          70 :    i5 = i5 + 1 | 0;
   31330          70 :    i4 = HEAP8[i5] | 0;
   31331          70 :   } while (!(i4 << 24 >> 24 == 0));
   31332          70 :   i5 = HEAP8[i2] | 0;
   31333          70 :   L7 : do {
   31334          70 :    if (i5 << 24 >> 24 == 0) {
   31335          70 :     i4 = i2;
   31336          70 :    } else {
   31337          70 :     i4 = i2;
   31338          70 :     while (1) {
   31339          70 :      i7 = i5 & 255;
   31340          70 :      i6 = i4 + 1 | 0;
   31341          70 :      if ((HEAP32[i3 + (i7 >>> 5 << 2) >> 2] & 1 << (i7 & 31) | 0) != 0) {
   31342          70 :       break L7;
   31343          70 :      }
   31344          70 :      i5 = HEAP8[i6] | 0;
   31345          70 :      if (i5 << 24 >> 24 == 0) {
   31346          70 :       i4 = i6;
   31347          70 :       break;
   31348          70 :      } else {
   31349          70 :       i4 = i6;
   31350          70 :      }
   31351          70 :     }
   31352          70 :    }
   31353          70 :   } while (0);
   31354          70 :   i7 = i4 - i2 | 0;
   31355          70 :   STACKTOP = i1;
   31356          70 :   return i7 | 0;
   31357          70 :  }
   31358          70 :  i7 = (___strchrnul(i2, i4 << 24 >> 24) | 0) - i2 | 0;
   31359          70 :  STACKTOP = i1;
   31360          70 :  return i7 | 0;
   31361          70 : }
   31362           1 : function _main(i4, i5) {
   31363           1 :  i4 = i4 | 0;
   31364           1 :  i5 = i5 | 0;
   31365           1 :  var i1 = 0, i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
   31366           1 :  i1 = STACKTOP;
   31367           1 :  STACKTOP = STACKTOP + 16 | 0;
   31368           1 :  i2 = i1;
   31369           1 :  i3 = _luaL_newstate() | 0;
   31370           1 :  if ((i3 | 0) == 0) {
   31371           1 :   i4 = HEAP32[i5 >> 2] | 0;
   31372           1 :   i3 = HEAP32[_stderr >> 2] | 0;
   31373           1 :   if ((i4 | 0) != 0) {
   31374           1 :    HEAP32[i2 >> 2] = i4;
   31375           1 :    _fprintf(i3 | 0, 496, i2 | 0) | 0;
   31376           1 :    _fflush(i3 | 0) | 0;
   31377           1 :   }
   31378           1 :   HEAP32[i2 >> 2] = 8;
   31379           1 :   _fprintf(i3 | 0, 912, i2 | 0) | 0;
   31380           1 :   _fflush(i3 | 0) | 0;
   31381           1 :   i8 = 1;
   31382           1 :   STACKTOP = i1;
   31383           1 :   return i8 | 0;
   31384           1 :  }
   31385           1 :  _lua_pushcclosure(i3, 141, 0);
   31386           1 :  _lua_pushinteger(i3, i4);
   31387           1 :  _lua_pushlightuserdata(i3, i5);
   31388           1 :  i6 = _lua_pcallk(i3, 2, 1, 0, 0, 0) | 0;
   31389           1 :  i7 = _lua_toboolean(i3, -1) | 0;
   31390           1 :  i6 = (i6 | 0) == 0;
   31391           1 :  if (!i6) {
   31392           1 :   if ((_lua_type(i3, -1) | 0) == 4) {
   31393           1 :    i8 = _lua_tolstring(i3, -1, 0) | 0;
   31394           1 :   } else {
   31395           1 :    i8 = 0;
   31396           1 :   }
   31397           1 :   i4 = HEAP32[20] | 0;
   31398           1 :   i5 = HEAP32[_stderr >> 2] | 0;
   31399           1 :   if ((i4 | 0) != 0) {
   31400           1 :    HEAP32[i2 >> 2] = i4;
   31401           1 :    _fprintf(i5 | 0, 496, i2 | 0) | 0;
   31402           1 :    _fflush(i5 | 0) | 0;
   31403           1 :   }
   31404           1 :   HEAP32[i2 >> 2] = (i8 | 0) == 0 ? 48 : i8;
   31405           1 :   _fprintf(i5 | 0, 912, i2 | 0) | 0;
   31406           1 :   _fflush(i5 | 0) | 0;
   31407           1 :   _lua_settop(i3, -2);
   31408           1 :  }
   31409           1 :  _lua_close(i3);
   31410           1 :  i8 = i6 & (i7 | 0) != 0 & 1 ^ 1;
   31411           1 :  STACKTOP = i1;
   31412           1 :  return i8 | 0;
   31413           1 : }
   31414           1 : function _db_sethook(i1) {
   31415           0 :  i1 = i1 | 0;
   31416           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
   31417           0 :  i4 = STACKTOP;
   31418           0 :  if ((_lua_type(i1, 1) | 0) == 8) {
   31419           0 :   i2 = _lua_tothread(i1, 1) | 0;
   31420           0 :   i5 = 1;
   31421           0 :  } else {
   31422           0 :   i2 = i1;
   31423           0 :   i5 = 0;
   31424           0 :  }
   31425           0 :  i3 = i5 + 1 | 0;
   31426           0 :  if ((_lua_type(i1, i3) | 0) < 1) {
   31427           0 :   _lua_settop(i1, i3);
   31428           0 :   i6 = 0;
   31429           0 :   i7 = 0;
   31430           0 :   i5 = 0;
   31431           0 :  } else {
   31432           0 :   i6 = _luaL_checklstring(i1, i5 | 2, 0) | 0;
   31433           0 :   _luaL_checktype(i1, i3, 6);
   31434           0 :   i5 = _luaL_optinteger(i1, i5 + 3 | 0, 0) | 0;
   31435           0 :   i7 = (_strchr(i6, 99) | 0) != 0 | 0;
   31436           0 :   i8 = (_strchr(i6, 114) | 0) == 0;
   31437           0 :   i7 = i8 ? i7 : i7 | 2;
   31438           0 :   i8 = (_strchr(i6, 108) | 0) == 0;
   31439           0 :   i8 = i8 ? i7 : i7 | 4;
   31440           0 :   i6 = i5;
   31441           0 :   i7 = 9;
   31442           0 :   i5 = (i5 | 0) > 0 ? i8 | 8 : i8;
   31443           0 :  }
   31444           0 :  if ((_luaL_getsubtable(i1, -1001e3, 11584) | 0) != 0) {
   31445           0 :   _lua_pushthread(i2) | 0;
   31446           0 :   _lua_xmove(i2, i1, 1);
   31447           0 :   _lua_pushvalue(i1, i3);
   31448           0 :   _lua_rawset(i1, -3);
   31449           0 :   _lua_sethook(i2, i7, i5, i6) | 0;
   31450           0 :   STACKTOP = i4;
   31451           0 :   return 0;
   31452           0 :  }
   31453           0 :  _lua_pushstring(i1, 11592) | 0;
   31454           0 :  _lua_setfield(i1, -2, 11600);
   31455           0 :  _lua_pushvalue(i1, -1);
   31456           0 :  _lua_setmetatable(i1, -2) | 0;
   31457           0 :  _lua_pushthread(i2) | 0;
   31458           0 :  _lua_xmove(i2, i1, 1);
   31459           0 :  _lua_pushvalue(i1, i3);
   31460           0 :  _lua_rawset(i1, -3);
   31461           0 :  _lua_sethook(i2, i7, i5, i6) | 0;
   31462           0 :  STACKTOP = i4;
   31463           0 :  return 0;
   31464           1 : }
   31465           1 : function _tconcat(i1) {
   31466           0 :  i1 = i1 | 0;
   31467           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
   31468           0 :  i3 = STACKTOP;
   31469           0 :  STACKTOP = STACKTOP + 1056 | 0;
   31470           0 :  i6 = i3;
   31471           0 :  i2 = i3 + 16 | 0;
   31472           0 :  i5 = i3 + 8 | 0;
   31473           0 :  i4 = _luaL_optlstring(i1, 2, 8208, i5) | 0;
   31474           0 :  _luaL_checktype(i1, 1, 5);
   31475           0 :  i8 = _luaL_optinteger(i1, 3, 1) | 0;
   31476           0 :  if ((_lua_type(i1, 4) | 0) < 1) {
   31477           0 :   i7 = _luaL_len(i1, 1) | 0;
   31478           0 :  } else {
   31479           0 :   i7 = _luaL_checkinteger(i1, 4) | 0;
   31480           0 :  }
   31481           0 :  _luaL_buffinit(i1, i2);
   31482           0 :  if ((i8 | 0) >= (i7 | 0)) {
   31483           0 :   if ((i8 | 0) != (i7 | 0)) {
   31484           0 :    _luaL_pushresult(i2);
   31485           0 :    STACKTOP = i3;
   31486           0 :    return 1;
   31487           0 :   }
   31488           0 :  } else {
   31489           0 :   do {
   31490           0 :    _lua_rawgeti(i1, 1, i8);
   31491           0 :    if ((_lua_isstring(i1, -1) | 0) == 0) {
   31492           0 :     HEAP32[i6 >> 2] = _lua_typename(i1, _lua_type(i1, -1) | 0) | 0;
   31493           0 :     HEAP32[i6 + 4 >> 2] = i8;
   31494           0 :     _luaL_error(i1, 8360, i6) | 0;
   31495           0 :    }
   31496           0 :    _luaL_addvalue(i2);
   31497           0 :    _luaL_addlstring(i2, i4, HEAP32[i5 >> 2] | 0);
   31498           0 :    i8 = i8 + 1 | 0;
   31499           0 :   } while ((i8 | 0) != (i7 | 0));
   31500           0 :  }
   31501           0 :  _lua_rawgeti(i1, 1, i7);
   31502           0 :  if ((_lua_isstring(i1, -1) | 0) == 0) {
   31503           0 :   HEAP32[i6 >> 2] = _lua_typename(i1, _lua_type(i1, -1) | 0) | 0;
   31504           0 :   HEAP32[i6 + 4 >> 2] = i7;
   31505           0 :   _luaL_error(i1, 8360, i6) | 0;
   31506           0 :  }
   31507           0 :  _luaL_addvalue(i2);
   31508           0 :  _luaL_pushresult(i2);
   31509           0 :  STACKTOP = i3;
   31510           0 :  return 1;
   31511           1 : }
   31512           1 : function _searcher_Croot(i1) {
   31513           0 :  i1 = i1 | 0;
   31514           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   31515           0 :  i2 = STACKTOP;
   31516           0 :  STACKTOP = STACKTOP + 16 | 0;
   31517           0 :  i3 = i2;
   31518           0 :  i4 = _luaL_checklstring(i1, 1, 0) | 0;
   31519           0 :  i5 = _strchr(i4, 46) | 0;
   31520           0 :  if ((i5 | 0) == 0) {
   31521           0 :   i6 = 0;
   31522           0 :   STACKTOP = i2;
   31523           0 :   return i6 | 0;
   31524           0 :  }
   31525           0 :  _lua_pushlstring(i1, i4, i5 - i4 | 0) | 0;
   31526           0 :  i5 = _lua_tolstring(i1, -1, 0) | 0;
   31527           0 :  _lua_getfield(i1, -1001001, 4440);
   31528           0 :  i6 = _lua_tolstring(i1, -1, 0) | 0;
   31529           0 :  if ((i6 | 0) == 0) {
   31530           0 :   HEAP32[i3 >> 2] = 4440;
   31531           0 :   _luaL_error(i1, 5032, i3) | 0;
   31532           0 :  }
   31533           0 :  i5 = _searchpath(i1, i5, i6, 4936, 4848) | 0;
   31534           0 :  if ((i5 | 0) == 0) {
   31535           0 :   i6 = 1;
   31536           0 :   STACKTOP = i2;
   31537           0 :   return i6 | 0;
   31538           0 :  }
   31539           0 :  i6 = _loadfunc(i1, i5, i4) | 0;
   31540           0 :  if ((i6 | 0) == 2) {
   31541           0 :   HEAP32[i3 >> 2] = i4;
   31542           0 :   HEAP32[i3 + 4 >> 2] = i5;
   31543           0 :   _lua_pushfstring(i1, 4856, i3) | 0;
   31544           0 :   i6 = 1;
   31545           0 :   STACKTOP = i2;
   31546           0 :   return i6 | 0;
   31547           0 :  } else if ((i6 | 0) == 0) {
   31548           0 :   _lua_pushstring(i1, i5) | 0;
   31549           0 :   i6 = 2;
   31550           0 :   STACKTOP = i2;
   31551           0 :   return i6 | 0;
   31552           0 :  } else {
   31553           0 :   i4 = _lua_tolstring(i1, 1, 0) | 0;
   31554           0 :   i6 = _lua_tolstring(i1, -1, 0) | 0;
   31555           0 :   HEAP32[i3 >> 2] = i4;
   31556           0 :   HEAP32[i3 + 4 >> 2] = i5;
   31557           0 :   HEAP32[i3 + 8 >> 2] = i6;
   31558           0 :   i6 = _luaL_error(i1, 4888, i3) | 0;
   31559           0 :   STACKTOP = i2;
   31560           0 :   return i6 | 0;
   31561           0 :  }
   31562           0 :  return 0;
   31563           1 : }
   31564          14 : function _lua_tonumberx(i5, i7, i1) {
   31565          14 :  i5 = i5 | 0;
   31566          14 :  i7 = i7 | 0;
   31567          14 :  i1 = i1 | 0;
   31568          14 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0, d8 = 0.0;
   31569          14 :  i2 = STACKTOP;
   31570          14 :  STACKTOP = STACKTOP + 16 | 0;
   31571          14 :  i3 = i2;
   31572          14 :  i6 = HEAP32[i5 + 16 >> 2] | 0;
   31573          14 :  do {
   31574          14 :   if ((i7 | 0) <= 0) {
   31575          14 :    if (!((i7 | 0) < -1000999)) {
   31576          14 :     i4 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0;
   31577          14 :     break;
   31578          14 :    }
   31579          14 :    if ((i7 | 0) == -1001e3) {
   31580          14 :     i4 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0;
   31581          14 :     break;
   31582          14 :    }
   31583          14 :    i5 = -1001e3 - i7 | 0;
   31584          14 :    i6 = HEAP32[i6 >> 2] | 0;
   31585          14 :    if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   31586          14 :     i4 = i4 + (i5 + -1 << 4) + 16 | 0;
   31587          14 :    } else {
   31588          14 :     i4 = 5192;
   31589          14 :    }
   31590          14 :   } else {
   31591          14 :    i4 = (HEAP32[i6 >> 2] | 0) + (i7 << 4) | 0;
   31592          14 :    i4 = i4 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   31593          14 :   }
   31594          14 :  } while (0);
   31595          14 :  if ((HEAP32[i4 + 8 >> 2] | 0) != 3) {
   31596          14 :   i4 = _luaV_tonumber(i4, i3) | 0;
   31597          14 :   if ((i4 | 0) == 0) {
   31598          14 :    if ((i1 | 0) == 0) {
   31599          14 :     d8 = 0.0;
   31600          14 :     STACKTOP = i2;
   31601          14 :     return +d8;
   31602          14 :    }
   31603          14 :    HEAP32[i1 >> 2] = 0;
   31604          14 :    d8 = 0.0;
   31605          14 :    STACKTOP = i2;
   31606          14 :    return +d8;
   31607          14 :   }
   31608          14 :  }
   31609          14 :  if ((i1 | 0) != 0) {
   31610          14 :   HEAP32[i1 >> 2] = 1;
   31611          14 :  }
   31612          14 :  d8 = +HEAPF64[i4 >> 3];
   31613          14 :  STACKTOP = i2;
   31614          14 :  return +d8;
   31615          14 : }
   31616           1 : function _luaopen_package(i1) {
   31617           1 :  i1 = i1 | 0;
   31618           1 :  var i2 = 0;
   31619           1 :  i2 = STACKTOP;
   31620           1 :  _luaL_getsubtable(i1, -1001e3, 4184) | 0;
   31621           1 :  _lua_createtable(i1, 0, 1);
   31622           1 :  _lua_pushcclosure(i1, 158, 0);
   31623           1 :  _lua_setfield(i1, -2, 4192);
   31624           1 :  _lua_setmetatable(i1, -2) | 0;
   31625           1 :  _lua_createtable(i1, 0, 3);
   31626           1 :  _luaL_setfuncs(i1, 4200, 0);
   31627           1 :  _lua_createtable(i1, 4, 0);
   31628           1 :  _lua_pushvalue(i1, -2);
   31629           1 :  _lua_pushcclosure(i1, 159, 1);
   31630           1 :  _lua_rawseti(i1, -2, 1);
   31631           1 :  _lua_pushvalue(i1, -2);
   31632           1 :  _lua_pushcclosure(i1, 160, 1);
   31633           1 :  _lua_rawseti(i1, -2, 2);
   31634           1 :  _lua_pushvalue(i1, -2);
   31635           1 :  _lua_pushcclosure(i1, 161, 1);
   31636           1 :  _lua_rawseti(i1, -2, 3);
   31637           1 :  _lua_pushvalue(i1, -2);
   31638           1 :  _lua_pushcclosure(i1, 162, 1);
   31639           1 :  _lua_rawseti(i1, -2, 4);
   31640           1 :  _lua_pushvalue(i1, -1);
   31641           1 :  _lua_setfield(i1, -3, 4232);
   31642           1 :  _lua_setfield(i1, -2, 4240);
   31643           1 :  _setpath(i1, 4256, 4264, 4280, 4296);
   31644           1 :  _setpath(i1, 4440, 4448, 4464, 4480);
   31645           1 :  _lua_pushlstring(i1, 4552, 10) | 0;
   31646           1 :  _lua_setfield(i1, -2, 4568);
   31647           1 :  _luaL_getsubtable(i1, -1001e3, 4576) | 0;
   31648           1 :  _lua_setfield(i1, -2, 4584);
   31649           1 :  _luaL_getsubtable(i1, -1001e3, 4592) | 0;
   31650           1 :  _lua_setfield(i1, -2, 4608);
   31651           1 :  _lua_rawgeti(i1, -1001e3, 2);
   31652           1 :  _lua_pushvalue(i1, -2);
   31653           1 :  _luaL_setfuncs(i1, 4616, 1);
   31654           1 :  _lua_settop(i1, -2);
   31655           1 :  STACKTOP = i2;
   31656           1 :  return 1;
   31657           1 : }
   31658           1 : function _lua_rawlen(i3, i5) {
   31659           0 :  i3 = i3 | 0;
   31660           0 :  i5 = i5 | 0;
   31661           0 :  var i1 = 0, i2 = 0, i4 = 0;
   31662           0 :  i1 = STACKTOP;
   31663           0 :  i4 = HEAP32[i3 + 16 >> 2] | 0;
   31664           0 :  do {
   31665           0 :   if ((i5 | 0) <= 0) {
   31666           0 :    if (!((i5 | 0) < -1000999)) {
   31667           0 :     i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
   31668           0 :     break;
   31669           0 :    }
   31670           0 :    if ((i5 | 0) == -1001e3) {
   31671           0 :     i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
   31672           0 :     break;
   31673           0 :    }
   31674           0 :    i3 = -1001e3 - i5 | 0;
   31675           0 :    i4 = HEAP32[i4 >> 2] | 0;
   31676           0 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
   31677           0 :     i2 = i2 + (i3 + -1 << 4) + 16 | 0;
   31678           0 :    } else {
   31679           0 :     i2 = 5192;
   31680           0 :    }
   31681           0 :   } else {
   31682           0 :    i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   31683           0 :    i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
   31684           0 :   }
   31685           0 :  } while (0);
   31686           0 :  i3 = HEAP32[i2 + 8 >> 2] & 15;
   31687           0 :  if ((i3 | 0) == 5) {
   31688           0 :   i5 = _luaH_getn(HEAP32[i2 >> 2] | 0) | 0;
   31689           0 :   STACKTOP = i1;
   31690           0 :   return i5 | 0;
   31691           0 :  } else if ((i3 | 0) == 4) {
   31692           0 :   i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0;
   31693           0 :   STACKTOP = i1;
   31694           0 :   return i5 | 0;
   31695           0 :  } else if ((i3 | 0) == 7) {
   31696           0 :   i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] | 0;
   31697           0 :   STACKTOP = i1;
   31698           0 :   return i5 | 0;
   31699           0 :  } else {
   31700           0 :   i5 = 0;
   31701           0 :   STACKTOP = i1;
   31702           0 :   return i5 | 0;
   31703           0 :  }
   31704           0 :  return 0;
   31705           1 : }
   31706           1 : function _searchpath(i3, i5, i6, i7, i8) {
   31707           0 :  i3 = i3 | 0;
   31708           0 :  i5 = i5 | 0;
   31709           0 :  i6 = i6 | 0;
   31710           0 :  i7 = i7 | 0;
   31711           0 :  i8 = i8 | 0;
   31712           0 :  var i1 = 0, i2 = 0, i4 = 0;
   31713           0 :  i2 = STACKTOP;
   31714           0 :  STACKTOP = STACKTOP + 1056 | 0;
   31715           0 :  i4 = i2;
   31716           0 :  i1 = i2 + 8 | 0;
   31717           0 :  _luaL_buffinit(i3, i1);
   31718           0 :  if ((HEAP8[i7] | 0) != 0) {
   31719           0 :   i5 = _luaL_gsub(i3, i5, i7, i8) | 0;
   31720           0 :  }
   31721           0 :  while (1) {
   31722           0 :   i7 = HEAP8[i6] | 0;
   31723           0 :   if (i7 << 24 >> 24 == 59) {
   31724           0 :    i6 = i6 + 1 | 0;
   31725           0 :    continue;
   31726           0 :   } else if (i7 << 24 >> 24 == 0) {
   31727           0 :    i3 = 12;
   31728           0 :    break;
   31729           0 :   }
   31730           0 :   i8 = _strchr(i6, 59) | 0;
   31731           0 :   if ((i8 | 0) == 0) {
   31732           0 :    i8 = i6 + (_strlen(i6 | 0) | 0) | 0;
   31733           0 :   }
   31734           0 :   _lua_pushlstring(i3, i6, i8 - i6 | 0) | 0;
   31735           0 :   if ((i8 | 0) == 0) {
   31736           0 :    i3 = 12;
   31737           0 :    break;
   31738           0 :   }
   31739           0 :   i6 = _luaL_gsub(i3, _lua_tolstring(i3, -1, 0) | 0, 5064, i5) | 0;
   31740           0 :   _lua_remove(i3, -2);
   31741           0 :   i7 = _fopen(i6 | 0, 5088) | 0;
   31742           0 :   if ((i7 | 0) != 0) {
   31743           0 :    i3 = 10;
   31744           0 :    break;
   31745           0 :   }
   31746           0 :   HEAP32[i4 >> 2] = i6;
   31747           0 :   _lua_pushfstring(i3, 5072, i4) | 0;
   31748           0 :   _lua_remove(i3, -2);
   31749           0 :   _luaL_addvalue(i1);
   31750           0 :   i6 = i8;
   31751           0 :  }
   31752           0 :  if ((i3 | 0) == 10) {
   31753           0 :   _fclose(i7 | 0) | 0;
   31754           0 :   i8 = i6;
   31755           0 :   STACKTOP = i2;
   31756           0 :   return i8 | 0;
   31757           0 :  } else if ((i3 | 0) == 12) {
   31758           0 :   _luaL_pushresult(i1);
   31759           0 :   i8 = 0;
   31760           0 :   STACKTOP = i2;
   31761           0 :   return i8 | 0;
   31762           0 :  }
   31763           0 :  return 0;
   31764           1 : }
   31765           1 : function _io_readline(i1) {
   31766           0 :  i1 = i1 | 0;
   31767           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   31768           0 :  i2 = STACKTOP;
   31769           0 :  STACKTOP = STACKTOP + 16 | 0;
   31770           0 :  i3 = i2;
   31771           0 :  i4 = _lua_touserdata(i1, -1001001) | 0;
   31772           0 :  i5 = _lua_tointegerx(i1, -1001002, 0) | 0;
   31773           0 :  if ((HEAP32[i4 + 4 >> 2] | 0) == 0) {
   31774           0 :   i6 = _luaL_error(i1, 3344, i3) | 0;
   31775           0 :   STACKTOP = i2;
   31776           0 :   return i6 | 0;
   31777           0 :  }
   31778           0 :  _lua_settop(i1, 1);
   31779           0 :  if ((i5 | 0) >= 1) {
   31780           0 :   i6 = 1;
   31781           0 :   while (1) {
   31782           0 :    _lua_pushvalue(i1, -1001003 - i6 | 0);
   31783           0 :    if ((i6 | 0) == (i5 | 0)) {
   31784           0 :     break;
   31785           0 :    } else {
   31786           0 :     i6 = i6 + 1 | 0;
   31787           0 :    }
   31788           0 :   }
   31789           0 :  }
   31790           0 :  i4 = _g_read(i1, HEAP32[i4 >> 2] | 0, 2) | 0;
   31791           0 :  if ((_lua_type(i1, 0 - i4 | 0) | 0) != 0) {
   31792           0 :   i6 = i4;
   31793           0 :   STACKTOP = i2;
   31794           0 :   return i6 | 0;
   31795           0 :  }
   31796           0 :  if ((i4 | 0) > 1) {
   31797           0 :   HEAP32[i3 >> 2] = _lua_tolstring(i1, 1 - i4 | 0, 0) | 0;
   31798           0 :   i6 = _luaL_error(i1, 3368, i3) | 0;
   31799           0 :   STACKTOP = i2;
   31800           0 :   return i6 | 0;
   31801           0 :  }
   31802           0 :  if ((_lua_toboolean(i1, -1001003) | 0) == 0) {
   31803           0 :   i6 = 0;
   31804           0 :   STACKTOP = i2;
   31805           0 :   return i6 | 0;
   31806           0 :  }
   31807           0 :  _lua_settop(i1, 0);
   31808           0 :  _lua_pushvalue(i1, -1001001);
   31809           0 :  i5 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0;
   31810           0 :  i6 = HEAP32[i5 >> 2] | 0;
   31811           0 :  HEAP32[i5 >> 2] = 0;
   31812           0 :  FUNCTION_TABLE_ii[i6 & 255](i1) | 0;
   31813           0 :  i6 = 0;
   31814           0 :  STACKTOP = i2;
   31815           0 :  return i6 | 0;
   31816           1 : }
   31817          22 : function _luaK_setreturns(i3, i5, i6) {
   31818          22 :  i3 = i3 | 0;
   31819          22 :  i5 = i5 | 0;
   31820          22 :  i6 = i6 | 0;
   31821          22 :  var i1 = 0, i2 = 0, i4 = 0, i7 = 0, i8 = 0;
   31822          22 :  i2 = STACKTOP;
   31823          22 :  i4 = HEAP32[i5 >> 2] | 0;
   31824          22 :  if ((i4 | 0) == 13) {
   31825          22 :   i7 = i5 + 8 | 0;
   31826          22 :   i8 = HEAP32[i3 >> 2] | 0;
   31827          22 :   i4 = HEAP32[i8 + 12 >> 2] | 0;
   31828          22 :   i5 = i4 + (HEAP32[i7 >> 2] << 2) | 0;
   31829          22 :   HEAP32[i5 >> 2] = HEAP32[i5 >> 2] & 8388607 | (i6 << 23) + 8388608;
   31830          22 :   i7 = i4 + (HEAP32[i7 >> 2] << 2) | 0;
   31831          22 :   i4 = i3 + 48 | 0;
   31832          22 :   HEAP32[i7 >> 2] = (HEAPU8[i4] | 0) << 6 | HEAP32[i7 >> 2] & -16321;
   31833          22 :   i7 = HEAP8[i4] | 0;
   31834          22 :   i5 = (i7 & 255) + 1 | 0;
   31835          22 :   i6 = i8 + 78 | 0;
   31836          22 :   do {
   31837          22 :    if (i5 >>> 0 > (HEAPU8[i6] | 0) >>> 0) {
   31838          22 :     if (i5 >>> 0 > 249) {
   31839          22 :      _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10536);
   31840          22 :     } else {
   31841          22 :      HEAP8[i6] = i5;
   31842          22 :      i1 = HEAP8[i4] | 0;
   31843          22 :      break;
   31844          22 :     }
   31845          22 :    } else {
   31846          22 :     i1 = i7;
   31847          22 :    }
   31848          22 :   } while (0);
   31849          22 :   HEAP8[i4] = (i1 & 255) + 1;
   31850          22 :   STACKTOP = i2;
   31851          22 :   return;
   31852          22 :  } else if ((i4 | 0) == 12) {
   31853          22 :   i8 = (HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i5 + 8 >> 2] << 2) | 0;
   31854          22 :   HEAP32[i8 >> 2] = HEAP32[i8 >> 2] & -8372225 | (i6 << 14) + 16384 & 8372224;
   31855          22 :   STACKTOP = i2;
   31856          22 :   return;
   31857          22 :  } else {
   31858          22 :   STACKTOP = i2;
   31859          22 :   return;
   31860          22 :  }
   31861          22 : }
   31862           1 : function _luaZ_read(i2, i9, i8) {
   31863           0 :  i2 = i2 | 0;
   31864           0 :  i9 = i9 | 0;
   31865           0 :  i8 = i8 | 0;
   31866           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i10 = 0, i11 = 0;
   31867           0 :  i1 = STACKTOP;
   31868           0 :  STACKTOP = STACKTOP + 16 | 0;
   31869           0 :  i3 = i1;
   31870           0 :  if ((i8 | 0) == 0) {
   31871           0 :   i11 = 0;
   31872           0 :   STACKTOP = i1;
   31873           0 :   return i11 | 0;
   31874           0 :  }
   31875           0 :  i7 = i2 + 16 | 0;
   31876           0 :  i6 = i2 + 8 | 0;
   31877           0 :  i4 = i2 + 12 | 0;
   31878           0 :  i5 = i2 + 4 | 0;
   31879           0 :  i11 = HEAP32[i2 >> 2] | 0;
   31880           0 :  while (1) {
   31881           0 :   if ((i11 | 0) == 0) {
   31882           0 :    i10 = FUNCTION_TABLE_iiii[HEAP32[i6 >> 2] & 3](HEAP32[i7 >> 2] | 0, HEAP32[i4 >> 2] | 0, i3) | 0;
   31883           0 :    if ((i10 | 0) == 0) {
   31884           0 :     i2 = 9;
   31885           0 :     break;
   31886           0 :    }
   31887           0 :    i11 = HEAP32[i3 >> 2] | 0;
   31888           0 :    if ((i11 | 0) == 0) {
   31889           0 :     i2 = 9;
   31890           0 :     break;
   31891           0 :    }
   31892           0 :    HEAP32[i2 >> 2] = i11;
   31893           0 :    HEAP32[i5 >> 2] = i10;
   31894           0 :   } else {
   31895           0 :    i10 = HEAP32[i5 >> 2] | 0;
   31896           0 :   }
   31897           0 :   i11 = i8 >>> 0 > i11 >>> 0 ? i11 : i8;
   31898           0 :   _memcpy(i9 | 0, i10 | 0, i11 | 0) | 0;
   31899           0 :   i10 = (HEAP32[i2 >> 2] | 0) - i11 | 0;
   31900           0 :   HEAP32[i2 >> 2] = i10;
   31901           0 :   HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i11;
   31902           0 :   if ((i8 | 0) == (i11 | 0)) {
   31903           0 :    i8 = 0;
   31904           0 :    i2 = 9;
   31905           0 :    break;
   31906           0 :   } else {
   31907           0 :    i8 = i8 - i11 | 0;
   31908           0 :    i9 = i9 + i11 | 0;
   31909           0 :    i11 = i10;
   31910           0 :   }
   31911           0 :  }
   31912           0 :  if ((i2 | 0) == 9) {
   31913           0 :   STACKTOP = i1;
   31914           0 :   return i8 | 0;
   31915           0 :  }
   31916           0 :  return 0;
   31917           1 : }
   31918           1 : function _lua_load(i1, i5, i4, i3, i6) {
   31919           1 :  i1 = i1 | 0;
   31920           1 :  i5 = i5 | 0;
   31921           1 :  i4 = i4 | 0;
   31922           1 :  i3 = i3 | 0;
   31923           1 :  i6 = i6 | 0;
   31924           1 :  var i2 = 0, i7 = 0, i8 = 0, i9 = 0;
   31925           1 :  i2 = STACKTOP;
   31926           1 :  STACKTOP = STACKTOP + 32 | 0;
   31927           1 :  i7 = i2;
   31928           1 :  _luaZ_init(i1, i7, i5, i4);
   31929           1 :  i3 = _luaD_protectedparser(i1, i7, (i3 | 0) == 0 ? 928 : i3, i6) | 0;
   31930           1 :  if ((i3 | 0) != 0) {
   31931           1 :   STACKTOP = i2;
   31932           1 :   return i3 | 0;
   31933           1 :  }
   31934           1 :  i4 = HEAP32[(HEAP32[i1 + 8 >> 2] | 0) + -16 >> 2] | 0;
   31935           1 :  if ((HEAP8[i4 + 6 | 0] | 0) != 1) {
   31936           1 :   STACKTOP = i2;
   31937           1 :   return i3 | 0;
   31938           1 :  }
   31939           1 :  i5 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0;
   31940           1 :  i4 = i4 + 16 | 0;
   31941           1 :  i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
   31942           1 :  i9 = i5;
   31943           1 :  i8 = HEAP32[i9 + 4 >> 2] | 0;
   31944           1 :  i7 = i6;
   31945           1 :  HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
   31946           1 :  HEAP32[i7 + 4 >> 2] = i8;
   31947           1 :  i7 = i5 + 8 | 0;
   31948           1 :  HEAP32[i6 + 8 >> 2] = HEAP32[i7 >> 2];
   31949           1 :  if ((HEAP32[i7 >> 2] & 64 | 0) == 0) {
   31950           1 :   STACKTOP = i2;
   31951           1 :   return i3 | 0;
   31952           1 :  }
   31953           1 :  i5 = HEAP32[i5 >> 2] | 0;
   31954           1 :  if ((HEAP8[i5 + 5 | 0] & 3) == 0) {
   31955           1 :   STACKTOP = i2;
   31956           1 :   return i3 | 0;
   31957           1 :  }
   31958           1 :  i4 = HEAP32[i4 >> 2] | 0;
   31959           1 :  if ((HEAP8[i4 + 5 | 0] & 4) == 0) {
   31960           1 :   STACKTOP = i2;
   31961           1 :   return i3 | 0;
   31962           1 :  }
   31963           1 :  _luaC_barrier_(i1, i4, i5);
   31964           1 :  STACKTOP = i2;
   31965           1 :  return i3 | 0;
   31966           1 : }
   31967           5 : function _g_write(i1, i4, i8) {
   31968           5 :  i1 = i1 | 0;
   31969           5 :  i4 = i4 | 0;
   31970           5 :  i8 = i8 | 0;
   31971           5 :  var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, d10 = 0.0;
   31972           5 :  i5 = STACKTOP;
   31973           5 :  STACKTOP = STACKTOP + 16 | 0;
   31974           5 :  i2 = i5;
   31975           5 :  i3 = i5 + 8 | 0;
   31976           5 :  i7 = _lua_gettop(i1) | 0;
   31977           5 :  if ((i7 | 0) == (i8 | 0)) {
   31978           5 :   i9 = 1;
   31979           5 :   STACKTOP = i5;
   31980           5 :   return i9 | 0;
   31981           5 :  }
   31982           5 :  i6 = i8;
   31983           5 :  i7 = i7 - i8 | 0;
   31984           5 :  i9 = 1;
   31985           5 :  while (1) {
   31986           5 :   i7 = i7 + -1 | 0;
   31987           5 :   if ((_lua_type(i1, i6) | 0) == 3) {
   31988           5 :    if ((i9 | 0) == 0) {
   31989           5 :     i8 = 0;
   31990           5 :    } else {
   31991           5 :     d10 = +_lua_tonumberx(i1, i6, 0);
   31992           5 :     HEAPF64[tempDoublePtr >> 3] = d10;
   31993           5 :     HEAP32[i2 >> 2] = HEAP32[tempDoublePtr >> 2];
   31994           5 :     HEAP32[i2 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
   31995           5 :     i8 = (_fprintf(i4 | 0, 3072, i2 | 0) | 0) > 0;
   31996           5 :    }
   31997           5 :   } else {
   31998           5 :    i8 = _luaL_checklstring(i1, i6, i3) | 0;
   31999           5 :    if ((i9 | 0) == 0) {
   32000           5 :     i8 = 0;
   32001           5 :    } else {
   32002           5 :     i8 = _fwrite(i8 | 0, 1, HEAP32[i3 >> 2] | 0, i4 | 0) | 0;
   32003           5 :     i8 = (i8 | 0) == (HEAP32[i3 >> 2] | 0);
   32004           5 :    }
   32005           5 :   }
   32006           5 :   if ((i7 | 0) == 0) {
   32007           5 :    break;
   32008           5 :   } else {
   32009           5 :    i6 = i6 + 1 | 0;
   32010           5 :    i9 = i8 & 1;
   32011           5 :   }
   32012           5 :  }
   32013           5 :  if (i8) {
   32014           5 :   i9 = 1;
   32015           5 :   STACKTOP = i5;
   32016           5 :   return i9 | 0;
   32017           5 :  }
   32018           5 :  i9 = _luaL_fileresult(i1, 0, 0) | 0;
   32019           5 :  STACKTOP = i5;
   32020           5 :  return i9 | 0;
   32021           5 : }
   32022           1 : function _lua_getuservalue(i2, i5) {
   32023           0 :  i2 = i2 | 0;
   32024           0 :  i5 = i5 | 0;
   32025           0 :  var i1 = 0, i3 = 0, i4 = 0;
   32026           0 :  i1 = STACKTOP;
   32027           0 :  i4 = HEAP32[i2 + 16 >> 2] | 0;
   32028           0 :  do {
   32029           0 :   if ((i5 | 0) <= 0) {
   32030           0 :    if (!((i5 | 0) < -1000999)) {
   32031           0 :     i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0;
   32032           0 :     break;
   32033           0 :    }
   32034           0 :    if ((i5 | 0) == -1001e3) {
   32035           0 :     i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   32036           0 :     break;
   32037           0 :    }
   32038           0 :    i5 = -1001e3 - i5 | 0;
   32039           0 :    i4 = HEAP32[i4 >> 2] | 0;
   32040           0 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   32041           0 :     i3 = i3 + (i5 + -1 << 4) + 16 | 0;
   32042           0 :    } else {
   32043           0 :     i3 = 5192;
   32044           0 :    }
   32045           0 :   } else {
   32046           0 :    i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   32047           0 :    i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   32048           0 :   }
   32049           0 :  } while (0);
   32050           0 :  i3 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
   32051           0 :  i2 = i2 + 8 | 0;
   32052           0 :  i4 = HEAP32[i2 >> 2] | 0;
   32053           0 :  if ((i3 | 0) == 0) {
   32054           0 :   HEAP32[i4 + 8 >> 2] = 0;
   32055           0 :   i5 = i4;
   32056           0 :   i5 = i5 + 16 | 0;
   32057           0 :   HEAP32[i2 >> 2] = i5;
   32058           0 :   STACKTOP = i1;
   32059           0 :   return;
   32060           0 :  } else {
   32061           0 :   HEAP32[i4 >> 2] = i3;
   32062           0 :   HEAP32[i4 + 8 >> 2] = 69;
   32063           0 :   i5 = HEAP32[i2 >> 2] | 0;
   32064           0 :   i5 = i5 + 16 | 0;
   32065           0 :   HEAP32[i2 >> 2] = i5;
   32066           0 :   STACKTOP = i1;
   32067           0 :   return;
   32068           0 :  }
   32069           1 : }
   32070           1 : function _luaL_addlstring(i7, i6, i1) {
   32071           0 :  i7 = i7 | 0;
   32072           0 :  i6 = i6 | 0;
   32073           0 :  i1 = i1 | 0;
   32074           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0;
   32075           0 :  i5 = STACKTOP;
   32076           0 :  STACKTOP = STACKTOP + 16 | 0;
   32077           0 :  i4 = HEAP32[i7 + 12 >> 2] | 0;
   32078           0 :  i3 = i7 + 4 | 0;
   32079           0 :  i9 = HEAP32[i3 >> 2] | 0;
   32080           0 :  i2 = i7 + 8 | 0;
   32081           0 :  i8 = HEAP32[i2 >> 2] | 0;
   32082           0 :  if (!((i9 - i8 | 0) >>> 0 < i1 >>> 0)) {
   32083           0 :   i7 = HEAP32[i7 >> 2] | 0;
   32084           0 :   i9 = i8;
   32085           0 :   i9 = i7 + i9 | 0;
   32086           0 :   _memcpy(i9 | 0, i6 | 0, i1 | 0) | 0;
   32087           0 :   i9 = HEAP32[i2 >> 2] | 0;
   32088           0 :   i9 = i9 + i1 | 0;
   32089           0 :   HEAP32[i2 >> 2] = i9;
   32090           0 :   STACKTOP = i5;
   32091           0 :   return;
   32092           0 :  }
   32093           0 :  i9 = i9 << 1;
   32094           0 :  i9 = (i9 - i8 | 0) >>> 0 < i1 >>> 0 ? i8 + i1 | 0 : i9;
   32095           0 :  if (i9 >>> 0 < i8 >>> 0 | (i9 - i8 | 0) >>> 0 < i1 >>> 0) {
   32096           0 :   _luaL_error(i4, 1272, i5) | 0;
   32097           0 :  }
   32098           0 :  i8 = _lua_newuserdata(i4, i9) | 0;
   32099           0 :  _memcpy(i8 | 0, HEAP32[i7 >> 2] | 0, HEAP32[i2 >> 2] | 0) | 0;
   32100           0 :  if ((HEAP32[i7 >> 2] | 0) != (i7 + 16 | 0)) {
   32101           0 :   _lua_remove(i4, -2);
   32102           0 :  }
   32103           0 :  HEAP32[i7 >> 2] = i8;
   32104           0 :  HEAP32[i3 >> 2] = i9;
   32105           0 :  i9 = HEAP32[i2 >> 2] | 0;
   32106           0 :  i9 = i8 + i9 | 0;
   32107           0 :  _memcpy(i9 | 0, i6 | 0, i1 | 0) | 0;
   32108           0 :  i9 = HEAP32[i2 >> 2] | 0;
   32109           0 :  i9 = i9 + i1 | 0;
   32110           0 :  HEAP32[i2 >> 2] = i9;
   32111           0 :  STACKTOP = i5;
   32112           0 :  return;
   32113           1 : }
   32114           3 : function _lua_rawgeti(i3, i6, i1) {
   32115           3 :  i3 = i3 | 0;
   32116           3 :  i6 = i6 | 0;
   32117           3 :  i1 = i1 | 0;
   32118           3 :  var i2 = 0, i4 = 0, i5 = 0, i7 = 0;
   32119           3 :  i2 = STACKTOP;
   32120           3 :  i5 = HEAP32[i3 + 16 >> 2] | 0;
   32121           3 :  do {
   32122           3 :   if ((i6 | 0) <= 0) {
   32123           3 :    if (!((i6 | 0) < -1000999)) {
   32124           3 :     i4 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0;
   32125           3 :     break;
   32126           3 :    }
   32127           3 :    if ((i6 | 0) == -1001e3) {
   32128           3 :     i4 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
   32129           3 :     break;
   32130           3 :    }
   32131           3 :    i6 = -1001e3 - i6 | 0;
   32132           3 :    i5 = HEAP32[i5 >> 2] | 0;
   32133           3 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   32134           3 :     i4 = i4 + (i6 + -1 << 4) + 16 | 0;
   32135           3 :    } else {
   32136           3 :     i4 = 5192;
   32137           3 :    }
   32138           3 :   } else {
   32139           3 :    i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
   32140           3 :    i4 = i4 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   32141           3 :   }
   32142           3 :  } while (0);
   32143           3 :  i4 = _luaH_getint(HEAP32[i4 >> 2] | 0, i1) | 0;
   32144           3 :  i6 = i3 + 8 | 0;
   32145           3 :  i5 = HEAP32[i6 >> 2] | 0;
   32146           3 :  i7 = i4;
   32147           3 :  i1 = HEAP32[i7 + 4 >> 2] | 0;
   32148           3 :  i3 = i5;
   32149           3 :  HEAP32[i3 >> 2] = HEAP32[i7 >> 2];
   32150           3 :  HEAP32[i3 + 4 >> 2] = i1;
   32151           3 :  HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
   32152           3 :  HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
   32153           3 :  STACKTOP = i2;
   32154           3 :  return;
   32155           3 : }
   32156         175 : function _lua_setfield(i1, i6, i3) {
   32157         175 :  i1 = i1 | 0;
   32158         175 :  i6 = i6 | 0;
   32159         175 :  i3 = i3 | 0;
   32160         175 :  var i2 = 0, i4 = 0, i5 = 0;
   32161         175 :  i2 = STACKTOP;
   32162         175 :  i5 = HEAP32[i1 + 16 >> 2] | 0;
   32163         175 :  do {
   32164         175 :   if ((i6 | 0) <= 0) {
   32165         175 :    if (!((i6 | 0) < -1000999)) {
   32166         175 :     i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
   32167         175 :     break;
   32168         175 :    }
   32169         175 :    if ((i6 | 0) == -1001e3) {
   32170         175 :     i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   32171         175 :     break;
   32172         175 :    }
   32173         175 :    i6 = -1001e3 - i6 | 0;
   32174         175 :    i5 = HEAP32[i5 >> 2] | 0;
   32175         175 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   32176         175 :     i4 = i4 + (i6 + -1 << 4) + 16 | 0;
   32177         175 :    } else {
   32178         175 :     i4 = 5192;
   32179         175 :    }
   32180         175 :   } else {
   32181         175 :    i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
   32182         175 :    i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   32183         175 :   }
   32184         175 :  } while (0);
   32185         175 :  i6 = i1 + 8 | 0;
   32186         175 :  i5 = HEAP32[i6 >> 2] | 0;
   32187         175 :  HEAP32[i6 >> 2] = i5 + 16;
   32188         175 :  i3 = _luaS_new(i1, i3) | 0;
   32189         175 :  HEAP32[i5 >> 2] = i3;
   32190         175 :  HEAP32[i5 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
   32191         175 :  i5 = HEAP32[i6 >> 2] | 0;
   32192         175 :  _luaV_settable(i1, i4, i5 + -16 | 0, i5 + -32 | 0);
   32193         175 :  HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + -32;
   32194         175 :  STACKTOP = i2;
   32195         175 :  return;
   32196         175 : }
   32197           1 : function _luaopen_io(i1) {
   32198           1 :  i1 = i1 | 0;
   32199           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   32200           1 :  i2 = STACKTOP;
   32201           1 :  _lua_createtable(i1, 0, 11);
   32202           1 :  _luaL_setfuncs(i1, 2680, 0);
   32203           1 :  _luaL_newmetatable(i1, 2832) | 0;
   32204           1 :  _lua_pushvalue(i1, -1);
   32205           1 :  _lua_setfield(i1, -2, 2872);
   32206           1 :  _luaL_setfuncs(i1, 2880, 0);
   32207           1 :  _lua_settop(i1, -2);
   32208           1 :  i5 = HEAP32[_stdin >> 2] | 0;
   32209           1 :  i4 = _lua_newuserdata(i1, 8) | 0;
   32210           1 :  i3 = i4 + 4 | 0;
   32211           1 :  HEAP32[i3 >> 2] = 0;
   32212           1 :  _luaL_setmetatable(i1, 2832);
   32213           1 :  HEAP32[i4 >> 2] = i5;
   32214           1 :  HEAP32[i3 >> 2] = 154;
   32215           1 :  _lua_pushvalue(i1, -1);
   32216           1 :  _lua_setfield(i1, -1001e3, 2776);
   32217           1 :  _lua_setfield(i1, -2, 2792);
   32218           1 :  i3 = HEAP32[_stdout >> 2] | 0;
   32219           1 :  i4 = _lua_newuserdata(i1, 8) | 0;
   32220           1 :  i5 = i4 + 4 | 0;
   32221           1 :  HEAP32[i5 >> 2] = 0;
   32222           1 :  _luaL_setmetatable(i1, 2832);
   32223           1 :  HEAP32[i4 >> 2] = i3;
   32224           1 :  HEAP32[i5 >> 2] = 154;
   32225           1 :  _lua_pushvalue(i1, -1);
   32226           1 :  _lua_setfield(i1, -1001e3, 2800);
   32227           1 :  _lua_setfield(i1, -2, 2816);
   32228           1 :  i5 = HEAP32[_stderr >> 2] | 0;
   32229           1 :  i4 = _lua_newuserdata(i1, 8) | 0;
   32230           1 :  i3 = i4 + 4 | 0;
   32231           1 :  HEAP32[i3 >> 2] = 0;
   32232           1 :  _luaL_setmetatable(i1, 2832);
   32233           1 :  HEAP32[i4 >> 2] = i5;
   32234           1 :  HEAP32[i3 >> 2] = 154;
   32235           1 :  _lua_setfield(i1, -2, 2824);
   32236           1 :  STACKTOP = i2;
   32237           1 :  return 1;
   32238           1 : }
   32239         159 : function _lua_pushcclosure(i1, i4, i5) {
   32240         159 :  i1 = i1 | 0;
   32241         159 :  i4 = i4 | 0;
   32242         159 :  i5 = i5 | 0;
   32243         159 :  var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
   32244         159 :  i2 = STACKTOP;
   32245         159 :  if ((i5 | 0) == 0) {
   32246         159 :   i6 = HEAP32[i1 + 8 >> 2] | 0;
   32247         159 :   HEAP32[i6 >> 2] = i4;
   32248         159 :   HEAP32[i6 + 8 >> 2] = 22;
   32249         159 :   i6 = i1 + 8 | 0;
   32250         159 :   i5 = HEAP32[i6 >> 2] | 0;
   32251         159 :   i5 = i5 + 16 | 0;
   32252         159 :   HEAP32[i6 >> 2] = i5;
   32253         159 :   STACKTOP = i2;
   32254         159 :   return;
   32255         159 :  }
   32256         159 :  if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   32257         159 :   _luaC_step(i1);
   32258         159 :  }
   32259         159 :  i3 = _luaF_newCclosure(i1, i5) | 0;
   32260         159 :  HEAP32[i3 + 12 >> 2] = i4;
   32261         159 :  i4 = i1 + 8 | 0;
   32262         159 :  i6 = (HEAP32[i4 >> 2] | 0) + (0 - i5 << 4) | 0;
   32263         159 :  HEAP32[i4 >> 2] = i6;
   32264         159 :  do {
   32265         159 :   i5 = i5 + -1 | 0;
   32266         159 :   i9 = i6 + (i5 << 4) | 0;
   32267         159 :   i8 = HEAP32[i9 + 4 >> 2] | 0;
   32268         159 :   i7 = i3 + (i5 << 4) + 16 | 0;
   32269         159 :   HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
   32270         159 :   HEAP32[i7 + 4 >> 2] = i8;
   32271         159 :   HEAP32[i3 + (i5 << 4) + 24 >> 2] = HEAP32[i6 + (i5 << 4) + 8 >> 2];
   32272         159 :   i6 = HEAP32[i4 >> 2] | 0;
   32273         159 :  } while ((i5 | 0) != 0);
   32274         159 :  HEAP32[i6 >> 2] = i3;
   32275         159 :  HEAP32[i6 + 8 >> 2] = 102;
   32276         159 :  i9 = i1 + 8 | 0;
   32277         159 :  i8 = HEAP32[i9 >> 2] | 0;
   32278         159 :  i8 = i8 + 16 | 0;
   32279         159 :  HEAP32[i9 >> 2] = i8;
   32280         159 :  STACKTOP = i2;
   32281         159 :  return;
   32282         159 : }
   32283           2 : function _luaF_findupval(i3, i4) {
   32284           2 :  i3 = i3 | 0;
   32285           2 :  i4 = i4 | 0;
   32286           2 :  var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0;
   32287           2 :  i1 = STACKTOP;
   32288           2 :  i2 = HEAP32[i3 + 12 >> 2] | 0;
   32289           2 :  i6 = i3 + 56 | 0;
   32290           2 :  i5 = HEAP32[i6 >> 2] | 0;
   32291           2 :  L1 : do {
   32292           2 :   if ((i5 | 0) == 0) {
   32293           2 :    i5 = i6;
   32294           2 :   } else {
   32295           2 :    while (1) {
   32296           2 :     i7 = HEAP32[i5 + 8 >> 2] | 0;
   32297           2 :     if (i7 >>> 0 < i4 >>> 0) {
   32298           2 :      i5 = i6;
   32299           2 :      break L1;
   32300           2 :     }
   32301           2 :     if ((i7 | 0) == (i4 | 0)) {
   32302           2 :      break;
   32303           2 :     }
   32304           2 :     i6 = HEAP32[i5 >> 2] | 0;
   32305           2 :     if ((i6 | 0) == 0) {
   32306           2 :      break L1;
   32307           2 :     } else {
   32308           2 :      i7 = i5;
   32309           2 :      i5 = i6;
   32310           2 :      i6 = i7;
   32311           2 :     }
   32312           2 :    }
   32313           2 :    i4 = i5 + 5 | 0;
   32314           2 :    i3 = (HEAPU8[i4] | 0) ^ 3;
   32315           2 :    if ((((HEAPU8[i2 + 60 | 0] | 0) ^ 3) & i3 | 0) != 0) {
   32316           2 :     i7 = i5;
   32317           2 :     STACKTOP = i1;
   32318           2 :     return i7 | 0;
   32319           2 :    }
   32320           2 :    HEAP8[i4] = i3;
   32321           2 :    i7 = i5;
   32322           2 :    STACKTOP = i1;
   32323           2 :    return i7 | 0;
   32324           2 :   }
   32325           2 :  } while (0);
   32326           2 :  i7 = _luaC_newobj(i3, 10, 32, i5, 0) | 0;
   32327           2 :  HEAP32[i7 + 8 >> 2] = i4;
   32328           2 :  i4 = i7 + 16 | 0;
   32329           2 :  HEAP32[i4 >> 2] = i2 + 112;
   32330           2 :  i6 = i2 + 132 | 0;
   32331           2 :  i5 = HEAP32[i6 >> 2] | 0;
   32332           2 :  HEAP32[i4 + 4 >> 2] = i5;
   32333           2 :  HEAP32[i5 + 16 >> 2] = i7;
   32334           2 :  HEAP32[i6 >> 2] = i7;
   32335           2 :  STACKTOP = i1;
   32336           2 :  return i7 | 0;
   32337           2 : }
   32338           4 : function _luaC_checkfinalizer(i5, i4, i6) {
   32339           4 :  i5 = i5 | 0;
   32340           4 :  i4 = i4 | 0;
   32341           4 :  i6 = i6 | 0;
   32342           4 :  var i1 = 0, i2 = 0, i3 = 0, i7 = 0, i8 = 0;
   32343           4 :  i3 = STACKTOP;
   32344           4 :  i1 = HEAP32[i5 + 12 >> 2] | 0;
   32345           4 :  i2 = i4 + 5 | 0;
   32346           4 :  if ((HEAP8[i2] & 24) != 0 | (i6 | 0) == 0) {
   32347           4 :   STACKTOP = i3;
   32348           4 :   return;
   32349           4 :  }
   32350           4 :  if (!((HEAP8[i6 + 6 | 0] & 4) == 0)) {
   32351           4 :   STACKTOP = i3;
   32352           4 :   return;
   32353           4 :  }
   32354           4 :  if ((_luaT_gettm(i6, 2, HEAP32[i1 + 192 >> 2] | 0) | 0) == 0) {
   32355           4 :   STACKTOP = i3;
   32356           4 :   return;
   32357           4 :  }
   32358           4 :  i7 = i1 + 76 | 0;
   32359           4 :  i8 = HEAP32[i7 >> 2] | 0;
   32360           4 :  if ((i8 | 0) == (i4 | 0)) {
   32361           4 :   do {
   32362           4 :    i6 = _sweeplist(i5, i8, 1) | 0;
   32363           4 :   } while ((i6 | 0) == (i8 | 0));
   32364           4 :   HEAP32[i7 >> 2] = i6;
   32365           4 :  }
   32366           4 :  i5 = i1 + 68 | 0;
   32367           4 :  while (1) {
   32368           4 :   i6 = HEAP32[i5 >> 2] | 0;
   32369           4 :   if ((i6 | 0) == (i4 | 0)) {
   32370           4 :    break;
   32371           4 :   } else {
   32372           4 :    i5 = i6;
   32373           4 :   }
   32374           4 :  }
   32375           4 :  HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
   32376           4 :  i8 = i1 + 72 | 0;
   32377           4 :  HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
   32378           4 :  HEAP32[i8 >> 2] = i4;
   32379           4 :  i4 = HEAPU8[i2] | 0 | 16;
   32380           4 :  HEAP8[i2] = i4;
   32381           4 :  if ((HEAPU8[i1 + 61 | 0] | 0) < 2) {
   32382           4 :   HEAP8[i2] = i4 & 191;
   32383           4 :   STACKTOP = i3;
   32384           4 :   return;
   32385           4 :  } else {
   32386           4 :   HEAP8[i2] = HEAP8[i1 + 60 | 0] & 3 | i4 & 184;
   32387           4 :   STACKTOP = i3;
   32388           4 :   return;
   32389           4 :  }
   32390           4 : }
   32391           1 : function _io_lines(i1) {
   32392           0 :  i1 = i1 | 0;
   32393           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   32394           0 :  i2 = STACKTOP;
   32395           0 :  STACKTOP = STACKTOP + 16 | 0;
   32396           0 :  i3 = i2;
   32397           0 :  if ((_lua_type(i1, 1) | 0) == -1) {
   32398           0 :   _lua_pushnil(i1);
   32399           0 :  }
   32400           0 :  if ((_lua_type(i1, 1) | 0) == 0) {
   32401           0 :   _lua_getfield(i1, -1001e3, 2776);
   32402           0 :   _lua_replace(i1, 1);
   32403           0 :   if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) != 0) {
   32404           0 :    i4 = 0;
   32405           0 :    _aux_lines(i1, i4);
   32406           0 :    STACKTOP = i2;
   32407           0 :    return 1;
   32408           0 :   }
   32409           0 :   _luaL_error(i1, 3080, i3) | 0;
   32410           0 :   i4 = 0;
   32411           0 :   _aux_lines(i1, i4);
   32412           0 :   STACKTOP = i2;
   32413           0 :   return 1;
   32414           0 :  } else {
   32415           0 :   i4 = _luaL_checklstring(i1, 1, 0) | 0;
   32416           0 :   i6 = _lua_newuserdata(i1, 8) | 0;
   32417           0 :   i5 = i6 + 4 | 0;
   32418           0 :   HEAP32[i5 >> 2] = 0;
   32419           0 :   _luaL_setmetatable(i1, 2832);
   32420           0 :   HEAP32[i6 >> 2] = 0;
   32421           0 :   HEAP32[i5 >> 2] = 156;
   32422           0 :   i5 = _fopen(i4 | 0, 3480) | 0;
   32423           0 :   HEAP32[i6 >> 2] = i5;
   32424           0 :   if ((i5 | 0) == 0) {
   32425           0 :    i6 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
   32426           0 :    HEAP32[i3 >> 2] = i4;
   32427           0 :    HEAP32[i3 + 4 >> 2] = i6;
   32428           0 :    _luaL_error(i1, 3520, i3) | 0;
   32429           0 :   }
   32430           0 :   _lua_replace(i1, 1);
   32431           0 :   i6 = 1;
   32432           0 :   _aux_lines(i1, i6);
   32433           0 :   STACKTOP = i2;
   32434           0 :   return 1;
   32435           0 :  }
   32436           0 :  return 0;
   32437           1 : }
   32438           1 : function _luaC_changemode(i2, i6) {
   32439           0 :  i2 = i2 | 0;
   32440           0 :  i6 = i6 | 0;
   32441           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0;
   32442           0 :  i1 = STACKTOP;
   32443           0 :  i3 = i2 + 12 | 0;
   32444           0 :  i5 = HEAP32[i3 >> 2] | 0;
   32445           0 :  i4 = i5 + 62 | 0;
   32446           0 :  if ((HEAPU8[i4] | 0) == (i6 | 0)) {
   32447           0 :   STACKTOP = i1;
   32448           0 :   return;
   32449           0 :  }
   32450           0 :  if ((i6 | 0) == 2) {
   32451           0 :   i3 = i5 + 61 | 0;
   32452           0 :   if ((HEAP8[i3] | 0) != 0) {
   32453           0 :    do {
   32454           0 :     _singlestep(i2) | 0;
   32455           0 :    } while ((HEAP8[i3] | 0) != 0);
   32456           0 :   }
   32457           0 :   HEAP32[i5 + 20 >> 2] = (HEAP32[i5 + 12 >> 2] | 0) + (HEAP32[i5 + 8 >> 2] | 0);
   32458           0 :   HEAP8[i4] = 2;
   32459           0 :   STACKTOP = i1;
   32460           0 :   return;
   32461           0 :  }
   32462           0 :  HEAP8[i4] = 0;
   32463           0 :  i4 = HEAP32[i3 >> 2] | 0;
   32464           0 :  HEAP8[i4 + 61 | 0] = 2;
   32465           0 :  HEAP32[i4 + 64 >> 2] = 0;
   32466           0 :  i5 = i4 + 72 | 0;
   32467           0 :  do {
   32468           0 :   i6 = _sweeplist(i2, i5, 1) | 0;
   32469           0 :  } while ((i6 | 0) == (i5 | 0));
   32470           0 :  HEAP32[i4 + 80 >> 2] = i6;
   32471           0 :  i5 = i4 + 68 | 0;
   32472           0 :  do {
   32473           0 :   i6 = _sweeplist(i2, i5, 1) | 0;
   32474           0 :  } while ((i6 | 0) == (i5 | 0));
   32475           0 :  HEAP32[i4 + 76 >> 2] = i6;
   32476           0 :  i3 = (HEAP32[i3 >> 2] | 0) + 61 | 0;
   32477           0 :  if ((1 << HEAPU8[i3] & -29 | 0) != 0) {
   32478           0 :   STACKTOP = i1;
   32479           0 :   return;
   32480           0 :  }
   32481           0 :  do {
   32482           0 :   _singlestep(i2) | 0;
   32483           0 :  } while ((1 << HEAPU8[i3] & -29 | 0) == 0);
   32484           0 :  STACKTOP = i1;
   32485           0 :  return;
   32486           1 : }
   32487           1 : function _lua_rawget(i1, i5) {
   32488           0 :  i1 = i1 | 0;
   32489           0 :  i5 = i5 | 0;
   32490           0 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
   32491           0 :  i2 = STACKTOP;
   32492           0 :  i4 = HEAP32[i1 + 16 >> 2] | 0;
   32493           0 :  do {
   32494           0 :   if ((i5 | 0) <= 0) {
   32495           0 :    if (!((i5 | 0) < -1000999)) {
   32496           0 :     i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
   32497           0 :     break;
   32498           0 :    }
   32499           0 :    if ((i5 | 0) == -1001e3) {
   32500           0 :     i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   32501           0 :     break;
   32502           0 :    }
   32503           0 :    i5 = -1001e3 - i5 | 0;
   32504           0 :    i4 = HEAP32[i4 >> 2] | 0;
   32505           0 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   32506           0 :     i3 = i3 + (i5 + -1 << 4) + 16 | 0;
   32507           0 :    } else {
   32508           0 :     i3 = 5192;
   32509           0 :    }
   32510           0 :   } else {
   32511           0 :    i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   32512           0 :    i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   32513           0 :   }
   32514           0 :  } while (0);
   32515           0 :  i5 = i1 + 8 | 0;
   32516           0 :  i4 = _luaH_get(HEAP32[i3 >> 2] | 0, (HEAP32[i5 >> 2] | 0) + -16 | 0) | 0;
   32517           0 :  i5 = HEAP32[i5 >> 2] | 0;
   32518           0 :  i6 = i4;
   32519           0 :  i1 = HEAP32[i6 + 4 >> 2] | 0;
   32520           0 :  i3 = i5 + -16 | 0;
   32521           0 :  HEAP32[i3 >> 2] = HEAP32[i6 >> 2];
   32522           0 :  HEAP32[i3 + 4 >> 2] = i1;
   32523           0 :  HEAP32[i5 + -8 >> 2] = HEAP32[i4 + 8 >> 2];
   32524           0 :  STACKTOP = i2;
   32525           0 :  return;
   32526           1 : }
   32527           1 : function _lua_isstring(i2, i4) {
   32528           0 :  i2 = i2 | 0;
   32529           0 :  i4 = i4 | 0;
   32530           0 :  var i1 = 0, i3 = 0;
   32531           0 :  i1 = STACKTOP;
   32532           0 :  i3 = HEAP32[i2 + 16 >> 2] | 0;
   32533           0 :  do {
   32534           0 :   if ((i4 | 0) <= 0) {
   32535           0 :    if (!((i4 | 0) < -1000999)) {
   32536           0 :     i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
   32537           0 :     break;
   32538           0 :    }
   32539           0 :    if ((i4 | 0) == -1001e3) {
   32540           0 :     i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   32541           0 :     break;
   32542           0 :    }
   32543           0 :    i2 = -1001e3 - i4 | 0;
   32544           0 :    i3 = HEAP32[i3 >> 2] | 0;
   32545           0 :    if ((HEAP32[i3 + 8 >> 2] | 0) == 22) {
   32546           0 :     i4 = 0;
   32547           0 :     i4 = i4 & 1;
   32548           0 :     STACKTOP = i1;
   32549           0 :     return i4 | 0;
   32550           0 :    }
   32551           0 :    i3 = HEAP32[i3 >> 2] | 0;
   32552           0 :    if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) {
   32553           0 :     i4 = 0;
   32554           0 :     i4 = i4 & 1;
   32555           0 :     STACKTOP = i1;
   32556           0 :     return i4 | 0;
   32557           0 :    } else {
   32558           0 :     i2 = i3 + (i2 + -1 << 4) + 16 | 0;
   32559           0 :     break;
   32560           0 :    }
   32561           0 :   } else {
   32562           0 :    i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0;
   32563           0 :    i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   32564           0 :   }
   32565           0 :  } while (0);
   32566           0 :  if ((i2 | 0) == 5192) {
   32567           0 :   i4 = 0;
   32568           0 :   i4 = i4 & 1;
   32569           0 :   STACKTOP = i1;
   32570           0 :   return i4 | 0;
   32571           0 :  }
   32572           0 :  i4 = ((HEAP32[i2 + 8 >> 2] & 15) + -3 | 0) >>> 0 < 2;
   32573           0 :  i4 = i4 & 1;
   32574           0 :  STACKTOP = i1;
   32575           0 :  return i4 | 0;
   32576           1 : }
   32577      143052 : function _setnodevector(i5, i1, i3) {
   32578      143052 :  i5 = i5 | 0;
   32579      143052 :  i1 = i1 | 0;
   32580      143052 :  i3 = i3 | 0;
   32581      143052 :  var i2 = 0, i4 = 0, i6 = 0, i7 = 0;
   32582      143052 :  i2 = STACKTOP;
   32583      143052 :  STACKTOP = STACKTOP + 16 | 0;
   32584      143052 :  if ((i3 | 0) == 0) {
   32585      143052 :   HEAP32[i1 + 16 >> 2] = 8016;
   32586      143052 :   i6 = 0;
   32587      143052 :   i7 = 8016;
   32588      143052 :   i4 = 0;
   32589      143052 :   i5 = i1 + 7 | 0;
   32590      143052 :   HEAP8[i5] = i4;
   32591      143052 :   i6 = i7 + (i6 << 5) | 0;
   32592      143052 :   i7 = i1 + 20 | 0;
   32593      143052 :   HEAP32[i7 >> 2] = i6;
   32594      143052 :   STACKTOP = i2;
   32595      143052 :   return;
   32596      143052 :  }
   32597      143052 :  i4 = _luaO_ceillog2(i3) | 0;
   32598      143052 :  if ((i4 | 0) > 30) {
   32599      143052 :   _luaG_runerror(i5, 8048, i2);
   32600      143052 :  }
   32601      143052 :  i3 = 1 << i4;
   32602      143052 :  if ((i3 + 1 | 0) >>> 0 > 134217727) {
   32603      143052 :   _luaM_toobig(i5);
   32604      143052 :  }
   32605      143052 :  i6 = _luaM_realloc_(i5, 0, 0, i3 << 5) | 0;
   32606      143052 :  i5 = i1 + 16 | 0;
   32607      143052 :  HEAP32[i5 >> 2] = i6;
   32608      143052 :  if ((i3 | 0) > 0) {
   32609      143052 :   i7 = 0;
   32610      143052 :   do {
   32611      143052 :    HEAP32[i6 + (i7 << 5) + 28 >> 2] = 0;
   32612      143052 :    HEAP32[i6 + (i7 << 5) + 24 >> 2] = 0;
   32613      143052 :    HEAP32[i6 + (i7 << 5) + 8 >> 2] = 0;
   32614      143052 :    i7 = i7 + 1 | 0;
   32615      143052 :    i6 = HEAP32[i5 >> 2] | 0;
   32616      143052 :   } while ((i7 | 0) != (i3 | 0));
   32617      143052 :  }
   32618      143052 :  i7 = i3;
   32619      143052 :  i4 = i4 & 255;
   32620      143052 :  i5 = i1 + 7 | 0;
   32621      143052 :  HEAP8[i5] = i4;
   32622      143052 :  i6 = i6 + (i7 << 5) | 0;
   32623      143052 :  i7 = i1 + 20 | 0;
   32624      143052 :  HEAP32[i7 >> 2] = i6;
   32625      143052 :  STACKTOP = i2;
   32626      143052 :  return;
   32627      143052 : }
   32628          37 : function _lua_pushvalue(i1, i5) {
   32629          37 :  i1 = i1 | 0;
   32630          37 :  i5 = i5 | 0;
   32631          37 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
   32632          37 :  i2 = STACKTOP;
   32633          37 :  i4 = HEAP32[i1 + 16 >> 2] | 0;
   32634          37 :  do {
   32635          37 :   if ((i5 | 0) <= 0) {
   32636          37 :    if (!((i5 | 0) < -1000999)) {
   32637          37 :     i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
   32638          37 :     break;
   32639          37 :    }
   32640          37 :    if ((i5 | 0) == -1001e3) {
   32641          37 :     i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   32642          37 :     break;
   32643          37 :    }
   32644          37 :    i5 = -1001e3 - i5 | 0;
   32645          37 :    i4 = HEAP32[i4 >> 2] | 0;
   32646          37 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   32647          37 :     i3 = i3 + (i5 + -1 << 4) + 16 | 0;
   32648          37 :    } else {
   32649          37 :     i3 = 5192;
   32650          37 :    }
   32651          37 :   } else {
   32652          37 :    i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   32653          37 :    i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   32654          37 :   }
   32655          37 :  } while (0);
   32656          37 :  i5 = i1 + 8 | 0;
   32657          37 :  i4 = HEAP32[i5 >> 2] | 0;
   32658          37 :  i7 = i3;
   32659          37 :  i6 = HEAP32[i7 + 4 >> 2] | 0;
   32660          37 :  i1 = i4;
   32661          37 :  HEAP32[i1 >> 2] = HEAP32[i7 >> 2];
   32662          37 :  HEAP32[i1 + 4 >> 2] = i6;
   32663          37 :  HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
   32664          37 :  HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
   32665          37 :  STACKTOP = i2;
   32666          37 :  return;
   32667          37 : }
   32668          12 : function _luaL_setfuncs(i3, i6, i1) {
   32669          12 :  i3 = i3 | 0;
   32670          12 :  i6 = i6 | 0;
   32671          12 :  i1 = i1 | 0;
   32672          12 :  var i2 = 0, i4 = 0, i5 = 0, i7 = 0;
   32673          12 :  i2 = STACKTOP;
   32674          12 :  STACKTOP = STACKTOP + 16 | 0;
   32675          12 :  i4 = i2;
   32676          12 :  _luaL_checkversion_(i3, 502.0);
   32677          12 :  if ((_lua_checkstack(i3, i1 + 20 | 0) | 0) == 0) {
   32678          12 :   HEAP32[i4 >> 2] = 1472;
   32679          12 :   _luaL_error(i3, 1216, i4) | 0;
   32680          12 :  }
   32681          12 :  if ((HEAP32[i6 >> 2] | 0) == 0) {
   32682          12 :   i7 = ~i1;
   32683          12 :   _lua_settop(i3, i7);
   32684          12 :   STACKTOP = i2;
   32685          12 :   return;
   32686          12 :  }
   32687          12 :  i4 = -2 - i1 | 0;
   32688          12 :  i5 = 0 - i1 | 0;
   32689          12 :  if ((i1 | 0) <= 0) {
   32690          12 :   do {
   32691          12 :    _lua_pushcclosure(i3, HEAP32[i6 + 4 >> 2] | 0, i1);
   32692          12 :    _lua_setfield(i3, i4, HEAP32[i6 >> 2] | 0);
   32693          12 :    i6 = i6 + 8 | 0;
   32694          12 :   } while ((HEAP32[i6 >> 2] | 0) != 0);
   32695          12 :   i7 = ~i1;
   32696          12 :   _lua_settop(i3, i7);
   32697          12 :   STACKTOP = i2;
   32698          12 :   return;
   32699          12 :  }
   32700          12 :  do {
   32701          12 :   i7 = 0;
   32702          12 :   do {
   32703          12 :    _lua_pushvalue(i3, i5);
   32704          12 :    i7 = i7 + 1 | 0;
   32705          12 :   } while ((i7 | 0) != (i1 | 0));
   32706          12 :   _lua_pushcclosure(i3, HEAP32[i6 + 4 >> 2] | 0, i1);
   32707          12 :   _lua_setfield(i3, i4, HEAP32[i6 >> 2] | 0);
   32708          12 :   i6 = i6 + 8 | 0;
   32709          12 :  } while ((HEAP32[i6 >> 2] | 0) != 0);
   32710          12 :  i7 = ~i1;
   32711          12 :  _lua_settop(i3, i7);
   32712          12 :  STACKTOP = i2;
   32713          12 :  return;
   32714          12 : }
   32715          15 : function _lua_touserdata(i3, i5) {
   32716          15 :  i3 = i3 | 0;
   32717          15 :  i5 = i5 | 0;
   32718          15 :  var i1 = 0, i2 = 0, i4 = 0;
   32719          15 :  i1 = STACKTOP;
   32720          15 :  i4 = HEAP32[i3 + 16 >> 2] | 0;
   32721          15 :  do {
   32722          15 :   if ((i5 | 0) <= 0) {
   32723          15 :    if (!((i5 | 0) < -1000999)) {
   32724          15 :     i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
   32725          15 :     break;
   32726          15 :    }
   32727          15 :    if ((i5 | 0) == -1001e3) {
   32728          15 :     i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
   32729          15 :     break;
   32730          15 :    }
   32731          15 :    i3 = -1001e3 - i5 | 0;
   32732          15 :    i4 = HEAP32[i4 >> 2] | 0;
   32733          15 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
   32734          15 :     i2 = i2 + (i3 + -1 << 4) + 16 | 0;
   32735          15 :    } else {
   32736          15 :     i2 = 5192;
   32737          15 :    }
   32738          15 :   } else {
   32739          15 :    i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   32740          15 :    i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
   32741          15 :   }
   32742          15 :  } while (0);
   32743          15 :  i3 = HEAP32[i2 + 8 >> 2] & 15;
   32744          15 :  if ((i3 | 0) == 2) {
   32745          15 :   i5 = HEAP32[i2 >> 2] | 0;
   32746          15 :   STACKTOP = i1;
   32747          15 :   return i5 | 0;
   32748          15 :  } else if ((i3 | 0) == 7) {
   32749          15 :   i5 = (HEAP32[i2 >> 2] | 0) + 24 | 0;
   32750          15 :   STACKTOP = i1;
   32751          15 :   return i5 | 0;
   32752          15 :  } else {
   32753          15 :   i5 = 0;
   32754          15 :   STACKTOP = i1;
   32755          15 :   return i5 | 0;
   32756          15 :  }
   32757          15 :  return 0;
   32758          15 : }
   32759           1 : function _luaL_checkoption(i2, i3, i6, i4) {
   32760           0 :  i2 = i2 | 0;
   32761           0 :  i3 = i3 | 0;
   32762           0 :  i6 = i6 | 0;
   32763           0 :  i4 = i4 | 0;
   32764           0 :  var i1 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
   32765           0 :  i1 = STACKTOP;
   32766           0 :  STACKTOP = STACKTOP + 16 | 0;
   32767           0 :  i5 = i1;
   32768           0 :  if ((i6 | 0) == 0) {
   32769           0 :   i6 = _lua_tolstring(i2, i3, 0) | 0;
   32770           0 :   if ((i6 | 0) == 0) {
   32771           0 :    i9 = _lua_typename(i2, 4) | 0;
   32772           0 :    i6 = _lua_typename(i2, _lua_type(i2, i3) | 0) | 0;
   32773           0 :    HEAP32[i5 >> 2] = i9;
   32774           0 :    HEAP32[i5 + 4 >> 2] = i6;
   32775           0 :    _luaL_argerror(i2, i3, _lua_pushfstring(i2, 1744, i5) | 0) | 0;
   32776           0 :    i6 = 0;
   32777           0 :   }
   32778           0 :  } else {
   32779           0 :   i6 = _luaL_optlstring(i2, i3, i6, 0) | 0;
   32780           0 :  }
   32781           0 :  i9 = HEAP32[i4 >> 2] | 0;
   32782           0 :  L6 : do {
   32783           0 :   if ((i9 | 0) != 0) {
   32784           0 :    i8 = 0;
   32785           0 :    while (1) {
   32786           0 :     i7 = i8 + 1 | 0;
   32787           0 :     if ((_strcmp(i9, i6) | 0) == 0) {
   32788           0 :      break;
   32789           0 :     }
   32790           0 :     i9 = HEAP32[i4 + (i7 << 2) >> 2] | 0;
   32791           0 :     if ((i9 | 0) == 0) {
   32792           0 :      break L6;
   32793           0 :     } else {
   32794           0 :      i8 = i7;
   32795           0 :     }
   32796           0 :    }
   32797           0 :    STACKTOP = i1;
   32798           0 :    return i8 | 0;
   32799           0 :   }
   32800           0 :  } while (0);
   32801           0 :  HEAP32[i5 >> 2] = i6;
   32802           0 :  i9 = _luaL_argerror(i2, i3, _lua_pushfstring(i2, 1192, i5) | 0) | 0;
   32803           0 :  STACKTOP = i1;
   32804           0 :  return i9 | 0;
   32805           1 : }
   32806           1 : function _lua_toboolean(i3, i5) {
   32807           1 :  i3 = i3 | 0;
   32808           1 :  i5 = i5 | 0;
   32809           1 :  var i1 = 0, i2 = 0, i4 = 0;
   32810           1 :  i1 = STACKTOP;
   32811           1 :  i4 = HEAP32[i3 + 16 >> 2] | 0;
   32812           1 :  do {
   32813           1 :   if ((i5 | 0) <= 0) {
   32814           1 :    if (!((i5 | 0) < -1000999)) {
   32815           1 :     i3 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
   32816           1 :     break;
   32817           1 :    }
   32818           1 :    if ((i5 | 0) == -1001e3) {
   32819           1 :     i3 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
   32820           1 :     break;
   32821           1 :    }
   32822           1 :    i3 = -1001e3 - i5 | 0;
   32823           1 :    i4 = HEAP32[i4 >> 2] | 0;
   32824           1 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
   32825           1 :     i3 = i2 + (i3 + -1 << 4) + 16 | 0;
   32826           1 :    } else {
   32827           1 :     i3 = 5192;
   32828           1 :    }
   32829           1 :   } else {
   32830           1 :    i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   32831           1 :    i3 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
   32832           1 :   }
   32833           1 :  } while (0);
   32834           1 :  i2 = HEAP32[i3 + 8 >> 2] | 0;
   32835           1 :  if ((i2 | 0) == 0) {
   32836           1 :   i5 = 0;
   32837           1 :   i5 = i5 & 1;
   32838           1 :   STACKTOP = i1;
   32839           1 :   return i5 | 0;
   32840           1 :  }
   32841           1 :  if ((i2 | 0) != 1) {
   32842           1 :   i5 = 1;
   32843           1 :   i5 = i5 & 1;
   32844           1 :   STACKTOP = i1;
   32845           1 :   return i5 | 0;
   32846           1 :  }
   32847           1 :  i5 = (HEAP32[i3 >> 2] | 0) != 0;
   32848           1 :  i5 = i5 & 1;
   32849           1 :  STACKTOP = i1;
   32850           1 :  return i5 | 0;
   32851           1 : }
   32852          33 : function _lua_getfield(i1, i6, i3) {
   32853          33 :  i1 = i1 | 0;
   32854          33 :  i6 = i6 | 0;
   32855          33 :  i3 = i3 | 0;
   32856          33 :  var i2 = 0, i4 = 0, i5 = 0;
   32857          33 :  i2 = STACKTOP;
   32858          33 :  i5 = HEAP32[i1 + 16 >> 2] | 0;
   32859          33 :  do {
   32860          33 :   if ((i6 | 0) <= 0) {
   32861          33 :    if (!((i6 | 0) < -1000999)) {
   32862          33 :     i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
   32863          33 :     break;
   32864          33 :    }
   32865          33 :    if ((i6 | 0) == -1001e3) {
   32866          33 :     i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   32867          33 :     break;
   32868          33 :    }
   32869          33 :    i6 = -1001e3 - i6 | 0;
   32870          33 :    i5 = HEAP32[i5 >> 2] | 0;
   32871          33 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
   32872          33 :     i4 = i4 + (i6 + -1 << 4) + 16 | 0;
   32873          33 :    } else {
   32874          33 :     i4 = 5192;
   32875          33 :    }
   32876          33 :   } else {
   32877          33 :    i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
   32878          33 :    i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
   32879          33 :   }
   32880          33 :  } while (0);
   32881          33 :  i5 = i1 + 8 | 0;
   32882          33 :  i6 = HEAP32[i5 >> 2] | 0;
   32883          33 :  i3 = _luaS_new(i1, i3) | 0;
   32884          33 :  HEAP32[i6 >> 2] = i3;
   32885          33 :  HEAP32[i6 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
   32886          33 :  i6 = HEAP32[i5 >> 2] | 0;
   32887          33 :  HEAP32[i5 >> 2] = i6 + 16;
   32888          33 :  _luaV_gettable(i1, i4, i6, i6);
   32889          33 :  STACKTOP = i2;
   32890          33 :  return;
   32891          33 : }
   32892           1 : function _luaL_argerror(i1, i6, i3) {
   32893           0 :  i1 = i1 | 0;
   32894           0 :  i6 = i6 | 0;
   32895           0 :  i3 = i3 | 0;
   32896           0 :  var i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
   32897           0 :  i4 = STACKTOP;
   32898           0 :  STACKTOP = STACKTOP + 112 | 0;
   32899           0 :  i2 = i4;
   32900           0 :  i5 = i4 + 12 | 0;
   32901           0 :  if ((_lua_getstack(i1, 0, i5) | 0) == 0) {
   32902           0 :   HEAP32[i2 >> 2] = i6;
   32903           0 :   HEAP32[i2 + 4 >> 2] = i3;
   32904           0 :   i8 = _luaL_error(i1, 1040, i2) | 0;
   32905           0 :   STACKTOP = i4;
   32906           0 :   return i8 | 0;
   32907           0 :  }
   32908           0 :  _lua_getinfo(i1, 1064, i5) | 0;
   32909           0 :  if ((_strcmp(HEAP32[i5 + 8 >> 2] | 0, 1072) | 0) == 0) {
   32910           0 :   i6 = i6 + -1 | 0;
   32911           0 :   if ((i6 | 0) == 0) {
   32912           0 :    HEAP32[i2 >> 2] = HEAP32[i5 + 4 >> 2];
   32913           0 :    HEAP32[i2 + 4 >> 2] = i3;
   32914           0 :    i8 = _luaL_error(i1, 1080, i2) | 0;
   32915           0 :    STACKTOP = i4;
   32916           0 :    return i8 | 0;
   32917           0 :   }
   32918           0 :  }
   32919           0 :  i7 = i5 + 4 | 0;
   32920           0 :  i8 = HEAP32[i7 >> 2] | 0;
   32921           0 :  if ((i8 | 0) == 0) {
   32922           0 :   if ((_pushglobalfuncname(i1, i5) | 0) == 0) {
   32923           0 :    i8 = 1112;
   32924           0 :   } else {
   32925           0 :    i8 = _lua_tolstring(i1, -1, 0) | 0;
   32926           0 :   }
   32927           0 :   HEAP32[i7 >> 2] = i8;
   32928           0 :  }
   32929           0 :  HEAP32[i2 >> 2] = i6;
   32930           0 :  HEAP32[i2 + 4 >> 2] = i8;
   32931           0 :  HEAP32[i2 + 8 >> 2] = i3;
   32932           0 :  i8 = _luaL_error(i1, 1120, i2) | 0;
   32933           0 :  STACKTOP = i4;
   32934           0 :  return i8 | 0;
   32935           1 : }
   32936           1 : function _match_class(i3, i2) {
   32937           0 :  i3 = i3 | 0;
   32938           0 :  i2 = i2 | 0;
   32939           0 :  var i1 = 0;
   32940           0 :  i1 = STACKTOP;
   32941           0 :  switch (_tolower(i2 | 0) | 0) {
   32942           0 :  case 117:
   32943           0 :   {
   32944           0 :    i3 = _isupper(i3 | 0) | 0;
   32945           0 :    break;
   32946           0 :   }
   32947           0 :  case 97:
   32948           0 :   {
   32949           0 :    i3 = _isalpha(i3 | 0) | 0;
   32950           0 :    break;
   32951           0 :   }
   32952           0 :  case 99:
   32953           0 :   {
   32954           0 :    i3 = _iscntrl(i3 | 0) | 0;
   32955           0 :    break;
   32956           0 :   }
   32957           0 :  case 120:
   32958           0 :   {
   32959           0 :    i3 = _isxdigit(i3 | 0) | 0;
   32960           0 :    break;
   32961           0 :   }
   32962           0 :  case 119:
   32963           0 :   {
   32964           0 :    i3 = _isalnum(i3 | 0) | 0;
   32965           0 :    break;
   32966           0 :   }
   32967           0 :  case 112:
   32968           0 :   {
   32969           0 :    i3 = _ispunct(i3 | 0) | 0;
   32970           0 :    break;
   32971           0 :   }
   32972           0 :  case 100:
   32973           0 :   {
   32974           0 :    i3 = (i3 + -48 | 0) >>> 0 < 10 | 0;
   32975           0 :    break;
   32976           0 :   }
   32977           0 :  case 108:
   32978           0 :   {
   32979           0 :    i3 = _islower(i3 | 0) | 0;
   32980           0 :    break;
   32981           0 :   }
   32982           0 :  case 122:
   32983           0 :   {
   32984           0 :    i3 = (i3 | 0) == 0 | 0;
   32985           0 :    break;
   32986           0 :   }
   32987           0 :  case 103:
   32988           0 :   {
   32989           0 :    i3 = _isgraph(i3 | 0) | 0;
   32990           0 :    break;
   32991           0 :   }
   32992           0 :  case 115:
   32993           0 :   {
   32994           0 :    i3 = _isspace(i3 | 0) | 0;
   32995           0 :    break;
   32996           0 :   }
   32997           0 :  default:
   32998           0 :   {
   32999           0 :    i3 = (i2 | 0) == (i3 | 0) | 0;
   33000           0 :    STACKTOP = i1;
   33001           0 :    return i3 | 0;
   33002           0 :   }
   33003           0 :  }
   33004           0 :  if ((_islower(i2 | 0) | 0) != 0) {
   33005           0 :   STACKTOP = i1;
   33006           0 :   return i3 | 0;
   33007           0 :  }
   33008           0 :  i3 = (i3 | 0) == 0 | 0;
   33009           0 :  STACKTOP = i1;
   33010           0 :  return i3 | 0;
   33011           1 : }
   33012          11 : function _condjump(i1, i3, i6, i4, i5) {
   33013          11 :  i1 = i1 | 0;
   33014          11 :  i3 = i3 | 0;
   33015          11 :  i6 = i6 | 0;
   33016          11 :  i4 = i4 | 0;
   33017          11 :  i5 = i5 | 0;
   33018          11 :  var i2 = 0, i7 = 0, i8 = 0, i9 = 0;
   33019          11 :  i2 = STACKTOP;
   33020          11 :  _luaK_code(i1, i6 << 6 | i3 | i4 << 23 | i5 << 14) | 0;
   33021          11 :  i3 = i1 + 28 | 0;
   33022          11 :  i6 = HEAP32[i3 >> 2] | 0;
   33023          11 :  HEAP32[i3 >> 2] = -1;
   33024          11 :  i3 = _luaK_code(i1, 2147450903) | 0;
   33025          11 :  if ((i6 | 0) == -1) {
   33026          11 :   i9 = i3;
   33027          11 :   STACKTOP = i2;
   33028          11 :   return i9 | 0;
   33029          11 :  }
   33030          11 :  if ((i3 | 0) == -1) {
   33031          11 :   i9 = i6;
   33032          11 :   STACKTOP = i2;
   33033          11 :   return i9 | 0;
   33034          11 :  }
   33035          11 :  i8 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
   33036          11 :  i7 = i3;
   33037          11 :  while (1) {
   33038          11 :   i4 = i8 + (i7 << 2) | 0;
   33039          11 :   i5 = HEAP32[i4 >> 2] | 0;
   33040          11 :   i9 = (i5 >>> 14) + -131071 | 0;
   33041          11 :   if ((i9 | 0) == -1) {
   33042          11 :    break;
   33043          11 :   }
   33044          11 :   i9 = i7 + 1 + i9 | 0;
   33045          11 :   if ((i9 | 0) == -1) {
   33046          11 :    break;
   33047          11 :   } else {
   33048          11 :    i7 = i9;
   33049          11 :   }
   33050          11 :  }
   33051          11 :  i6 = i6 + ~i7 | 0;
   33052          11 :  if ((((i6 | 0) > -1 ? i6 : 0 - i6 | 0) | 0) > 131071) {
   33053          11 :   _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
   33054          11 :  }
   33055          11 :  HEAP32[i4 >> 2] = (i6 << 14) + 2147467264 | i5 & 16383;
   33056          11 :  i9 = i3;
   33057          11 :  STACKTOP = i2;
   33058          11 :  return i9 | 0;
   33059          11 : }
   33060           1 : function _skipcomment(i6, i1) {
   33061           1 :  i6 = i6 | 0;
   33062           1 :  i1 = i1 | 0;
   33063           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
   33064           1 :  i2 = STACKTOP;
   33065           1 :  HEAP32[i6 >> 2] = 0;
   33066           1 :  i3 = i6 + 4 | 0;
   33067           1 :  i5 = 1712;
   33068           1 :  while (1) {
   33069           1 :   i7 = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
   33070           1 :   if ((i7 | 0) == -1) {
   33071           1 :    i4 = 3;
   33072           1 :    break;
   33073           1 :   }
   33074           1 :   i8 = i5 + 1 | 0;
   33075           1 :   if ((i7 | 0) != (HEAPU8[i5] | 0)) {
   33076           1 :    break;
   33077           1 :   }
   33078           1 :   i5 = HEAP32[i6 >> 2] | 0;
   33079           1 :   HEAP32[i6 >> 2] = i5 + 1;
   33080           1 :   HEAP8[i6 + i5 + 8 | 0] = i7;
   33081           1 :   if ((HEAP8[i8] | 0) == 0) {
   33082           1 :    i4 = 6;
   33083           1 :    break;
   33084           1 :   } else {
   33085           1 :    i5 = i8;
   33086           1 :   }
   33087           1 :  }
   33088           1 :  if ((i4 | 0) == 3) {
   33089           1 :   HEAP32[i1 >> 2] = -1;
   33090           1 :   i8 = 0;
   33091           1 :   STACKTOP = i2;
   33092           1 :   return i8 | 0;
   33093           1 :  } else if ((i4 | 0) == 6) {
   33094           1 :   HEAP32[i6 >> 2] = 0;
   33095           1 :   i7 = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
   33096           1 :  }
   33097           1 :  HEAP32[i1 >> 2] = i7;
   33098           1 :  if ((i7 | 0) != 35) {
   33099           1 :   i8 = 0;
   33100           1 :   STACKTOP = i2;
   33101           1 :   return i8 | 0;
   33102           1 :  }
   33103           1 :  do {
   33104           1 :   i8 = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
   33105           1 :  } while (!((i8 | 0) == 10 | (i8 | 0) == -1));
   33106           1 :  HEAP32[i1 >> 2] = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
   33107           1 :  i8 = 1;
   33108           1 :  STACKTOP = i2;
   33109           1 :  return i8 | 0;
   33110           1 : }
   33111           1 : function _lua_isnumber(i4, i6) {
   33112           0 :  i4 = i4 | 0;
   33113           0 :  i6 = i6 | 0;
   33114           0 :  var i1 = 0, i2 = 0, i3 = 0, i5 = 0;
   33115           0 :  i1 = STACKTOP;
   33116           0 :  STACKTOP = STACKTOP + 16 | 0;
   33117           0 :  i2 = i1;
   33118           0 :  i5 = HEAP32[i4 + 16 >> 2] | 0;
   33119           0 :  do {
   33120           0 :   if ((i6 | 0) <= 0) {
   33121           0 :    if (!((i6 | 0) < -1000999)) {
   33122           0 :     i3 = (HEAP32[i4 + 8 >> 2] | 0) + (i6 << 4) | 0;
   33123           0 :     break;
   33124           0 :    }
   33125           0 :    if ((i6 | 0) == -1001e3) {
   33126           0 :     i3 = (HEAP32[i4 + 12 >> 2] | 0) + 40 | 0;
   33127           0 :     break;
   33128           0 :    }
   33129           0 :    i4 = -1001e3 - i6 | 0;
   33130           0 :    i5 = HEAP32[i5 >> 2] | 0;
   33131           0 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   33132           0 :     i3 = i3 + (i4 + -1 << 4) + 16 | 0;
   33133           0 :    } else {
   33134           0 :     i3 = 5192;
   33135           0 :    }
   33136           0 :   } else {
   33137           0 :    i3 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
   33138           0 :    i3 = i3 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   33139           0 :   }
   33140           0 :  } while (0);
   33141           0 :  if ((HEAP32[i3 + 8 >> 2] | 0) == 3) {
   33142           0 :   i6 = 1;
   33143           0 :   i6 = i6 & 1;
   33144           0 :   STACKTOP = i1;
   33145           0 :   return i6 | 0;
   33146           0 :  }
   33147           0 :  i6 = (_luaV_tonumber(i3, i2) | 0) != 0;
   33148           0 :  i6 = i6 & 1;
   33149           0 :  STACKTOP = i1;
   33150           0 :  return i6 | 0;
   33151           1 : }
   33152           1 : function ___shgetc(i3) {
   33153           0 :  i3 = i3 | 0;
   33154           0 :  var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
   33155           0 :  i2 = STACKTOP;
   33156           0 :  i7 = i3 + 104 | 0;
   33157           0 :  i6 = HEAP32[i7 >> 2] | 0;
   33158           0 :  if (!((i6 | 0) != 0 ? (HEAP32[i3 + 108 >> 2] | 0) >= (i6 | 0) : 0)) {
   33159           0 :   i8 = 3;
   33160           0 :  }
   33161           0 :  if ((i8 | 0) == 3 ? (i1 = ___uflow(i3) | 0, (i1 | 0) >= 0) : 0) {
   33162           0 :   i7 = HEAP32[i7 >> 2] | 0;
   33163           0 :   i6 = HEAP32[i3 + 8 >> 2] | 0;
   33164           0 :   if ((i7 | 0) != 0 ? (i4 = HEAP32[i3 + 4 >> 2] | 0, i5 = i7 - (HEAP32[i3 + 108 >> 2] | 0) + -1 | 0, (i6 - i4 | 0) > (i5 | 0)) : 0) {
   33165           0 :    HEAP32[i3 + 100 >> 2] = i4 + i5;
   33166           0 :   } else {
   33167           0 :    HEAP32[i3 + 100 >> 2] = i6;
   33168           0 :   }
   33169           0 :   i4 = HEAP32[i3 + 4 >> 2] | 0;
   33170           0 :   if ((i6 | 0) != 0) {
   33171           0 :    i8 = i3 + 108 | 0;
   33172           0 :    HEAP32[i8 >> 2] = i6 + 1 - i4 + (HEAP32[i8 >> 2] | 0);
   33173           0 :   }
   33174           0 :   i3 = i4 + -1 | 0;
   33175           0 :   if ((HEAPU8[i3] | 0 | 0) == (i1 | 0)) {
   33176           0 :    i8 = i1;
   33177           0 :    STACKTOP = i2;
   33178           0 :    return i8 | 0;
   33179           0 :   }
   33180           0 :   HEAP8[i3] = i1;
   33181           0 :   i8 = i1;
   33182           0 :   STACKTOP = i2;
   33183           0 :   return i8 | 0;
   33184           0 :  }
   33185           0 :  HEAP32[i3 + 100 >> 2] = 0;
   33186           0 :  i8 = -1;
   33187           0 :  STACKTOP = i2;
   33188           0 :  return i8 | 0;
   33189           1 : }
   33190          21 : function _lua_type(i2, i4) {
   33191          21 :  i2 = i2 | 0;
   33192          21 :  i4 = i4 | 0;
   33193          21 :  var i1 = 0, i3 = 0;
   33194          21 :  i1 = STACKTOP;
   33195          21 :  i3 = HEAP32[i2 + 16 >> 2] | 0;
   33196          21 :  do {
   33197          21 :   if ((i4 | 0) <= 0) {
   33198          21 :    if (!((i4 | 0) < -1000999)) {
   33199          21 :     i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
   33200          21 :     break;
   33201          21 :    }
   33202          21 :    if ((i4 | 0) == -1001e3) {
   33203          21 :     i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   33204          21 :     break;
   33205          21 :    }
   33206          21 :    i2 = -1001e3 - i4 | 0;
   33207          21 :    i3 = HEAP32[i3 >> 2] | 0;
   33208          21 :    if ((HEAP32[i3 + 8 >> 2] | 0) == 22) {
   33209          21 :     i4 = -1;
   33210          21 :     STACKTOP = i1;
   33211          21 :     return i4 | 0;
   33212          21 :    }
   33213          21 :    i3 = HEAP32[i3 >> 2] | 0;
   33214          21 :    if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) {
   33215          21 :     i4 = -1;
   33216          21 :     STACKTOP = i1;
   33217          21 :     return i4 | 0;
   33218          21 :    } else {
   33219          21 :     i2 = i3 + (i2 + -1 << 4) + 16 | 0;
   33220          21 :     break;
   33221          21 :    }
   33222          21 :   } else {
   33223          21 :    i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0;
   33224          21 :    i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   33225          21 :   }
   33226          21 :  } while (0);
   33227          21 :  if ((i2 | 0) == 5192) {
   33228          21 :   i4 = -1;
   33229          21 :   STACKTOP = i1;
   33230          21 :   return i4 | 0;
   33231          21 :  }
   33232          21 :  i4 = HEAP32[i2 + 8 >> 2] & 15;
   33233          21 :  STACKTOP = i1;
   33234          21 :  return i4 | 0;
   33235          21 : }
   33236           1 : function _g_iofile(i4, i1, i5) {
   33237           0 :  i4 = i4 | 0;
   33238           0 :  i1 = i1 | 0;
   33239           0 :  i5 = i5 | 0;
   33240           0 :  var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
   33241           0 :  i2 = STACKTOP;
   33242           0 :  STACKTOP = STACKTOP + 16 | 0;
   33243           0 :  i3 = i2;
   33244           0 :  if ((_lua_type(i4, 1) | 0) < 1) {
   33245           0 :   _lua_getfield(i4, -1001e3, i1);
   33246           0 :   STACKTOP = i2;
   33247           0 :   return;
   33248           0 :  }
   33249           0 :  i6 = _lua_tolstring(i4, 1, 0) | 0;
   33250           0 :  if ((i6 | 0) != 0) {
   33251           0 :   i7 = _lua_newuserdata(i4, 8) | 0;
   33252           0 :   i8 = i7 + 4 | 0;
   33253           0 :   HEAP32[i8 >> 2] = 0;
   33254           0 :   _luaL_setmetatable(i4, 2832);
   33255           0 :   HEAP32[i7 >> 2] = 0;
   33256           0 :   HEAP32[i8 >> 2] = 156;
   33257           0 :   i5 = _fopen(i6 | 0, i5 | 0) | 0;
   33258           0 :   HEAP32[i7 >> 2] = i5;
   33259           0 :   if ((i5 | 0) == 0) {
   33260           0 :    i8 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
   33261           0 :    HEAP32[i3 >> 2] = i6;
   33262           0 :    HEAP32[i3 + 4 >> 2] = i8;
   33263           0 :    _luaL_error(i4, 3520, i3) | 0;
   33264           0 :   }
   33265           0 :  } else {
   33266           0 :   if ((HEAP32[(_luaL_checkudata(i4, 1, 2832) | 0) + 4 >> 2] | 0) == 0) {
   33267           0 :    _luaL_error(i4, 3080, i3) | 0;
   33268           0 :   }
   33269           0 :   _lua_pushvalue(i4, 1);
   33270           0 :  }
   33271           0 :  _lua_setfield(i4, -1001e3, i1);
   33272           0 :  _lua_getfield(i4, -1001e3, i1);
   33273           0 :  STACKTOP = i2;
   33274           0 :  return;
   33275           1 : }
   33276           1 : function _lua_getlocal(i4, i5, i2) {
   33277           0 :  i4 = i4 | 0;
   33278           0 :  i5 = i5 | 0;
   33279           0 :  i2 = i2 | 0;
   33280           0 :  var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
   33281           0 :  i1 = STACKTOP;
   33282           0 :  STACKTOP = STACKTOP + 16 | 0;
   33283           0 :  i3 = i1;
   33284           0 :  if ((i5 | 0) == 0) {
   33285           0 :   i3 = HEAP32[i4 + 8 >> 2] | 0;
   33286           0 :   if ((HEAP32[i3 + -8 >> 2] | 0) != 70) {
   33287           0 :    i5 = 0;
   33288           0 :    STACKTOP = i1;
   33289           0 :    return i5 | 0;
   33290           0 :   }
   33291           0 :   i5 = _luaF_getlocalname(HEAP32[(HEAP32[i3 + -16 >> 2] | 0) + 12 >> 2] | 0, i2, 0) | 0;
   33292           0 :   STACKTOP = i1;
   33293           0 :   return i5 | 0;
   33294           0 :  } else {
   33295           0 :   HEAP32[i3 >> 2] = 0;
   33296           0 :   i2 = _findlocal(i4, HEAP32[i5 + 96 >> 2] | 0, i2, i3) | 0;
   33297           0 :   if ((i2 | 0) == 0) {
   33298           0 :    i5 = 0;
   33299           0 :    STACKTOP = i1;
   33300           0 :    return i5 | 0;
   33301           0 :   }
   33302           0 :   i3 = HEAP32[i3 >> 2] | 0;
   33303           0 :   i5 = i4 + 8 | 0;
   33304           0 :   i4 = HEAP32[i5 >> 2] | 0;
   33305           0 :   i8 = i3;
   33306           0 :   i7 = HEAP32[i8 + 4 >> 2] | 0;
   33307           0 :   i6 = i4;
   33308           0 :   HEAP32[i6 >> 2] = HEAP32[i8 >> 2];
   33309           0 :   HEAP32[i6 + 4 >> 2] = i7;
   33310           0 :   HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
   33311           0 :   HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
   33312           0 :   i5 = i2;
   33313           0 :   STACKTOP = i1;
   33314           0 :   return i5 | 0;
   33315           0 :  }
   33316           0 :  return 0;
   33317           1 : }
   33318          13 : function _lua_checkstack(i7, i4) {
   33319          13 :  i7 = i7 | 0;
   33320          13 :  i4 = i4 | 0;
   33321          13 :  var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0;
   33322          13 :  i1 = STACKTOP;
   33323          13 :  STACKTOP = STACKTOP + 16 | 0;
   33324          13 :  i3 = i1;
   33325          13 :  HEAP32[i3 >> 2] = i4;
   33326          13 :  i2 = HEAP32[i7 + 16 >> 2] | 0;
   33327          13 :  i5 = i7 + 8 | 0;
   33328          13 :  i6 = HEAP32[i5 >> 2] | 0;
   33329          13 :  i8 = i6;
   33330          13 :  do {
   33331          13 :   if (((HEAP32[i7 + 24 >> 2] | 0) - i8 >> 4 | 0) <= (i4 | 0)) {
   33332          13 :    if (((i8 - (HEAP32[i7 + 28 >> 2] | 0) >> 4) + 5 | 0) > (1e6 - i4 | 0)) {
   33333          13 :     i8 = 0;
   33334          13 :     STACKTOP = i1;
   33335          13 :     return i8 | 0;
   33336          13 :    }
   33337          13 :    i6 = (_luaD_rawrunprotected(i7, 2, i3) | 0) == 0;
   33338          13 :    if (i6) {
   33339          13 :     i5 = HEAP32[i5 >> 2] | 0;
   33340          13 :     i4 = HEAP32[i3 >> 2] | 0;
   33341          13 :     i3 = i6 & 1;
   33342          13 :     break;
   33343          13 :    } else {
   33344          13 :     i8 = 0;
   33345          13 :     STACKTOP = i1;
   33346          13 :     return i8 | 0;
   33347          13 :    }
   33348          13 :   } else {
   33349          13 :    i5 = i6;
   33350          13 :    i3 = 1;
   33351          13 :   }
   33352          13 :  } while (0);
   33353          13 :  i2 = i2 + 4 | 0;
   33354          13 :  i4 = i5 + (i4 << 4) | 0;
   33355          13 :  if (!((HEAP32[i2 >> 2] | 0) >>> 0 < i4 >>> 0)) {
   33356          13 :   i8 = i3;
   33357          13 :   STACKTOP = i1;
   33358          13 :   return i8 | 0;
   33359          13 :  }
   33360          13 :  HEAP32[i2 >> 2] = i4;
   33361          13 :  i8 = i3;
   33362          13 :  STACKTOP = i1;
   33363          13 :  return i8 | 0;
   33364          13 : }
   33365          79 : function _luaK_exp2nextreg(i1, i3) {
   33366          79 :  i1 = i1 | 0;
   33367          79 :  i3 = i3 | 0;
   33368          79 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   33369          79 :  i2 = STACKTOP;
   33370          79 :  _luaK_dischargevars(i1, i3);
   33371          79 :  if (((HEAP32[i3 >> 2] | 0) == 6 ? (i4 = HEAP32[i3 + 8 >> 2] | 0, (i4 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0 | 0) <= (i4 | 0) : 0) {
   33372          79 :   i7 = i1 + 48 | 0;
   33373          79 :   HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
   33374          79 :  }
   33375          79 :  i4 = i1 + 48 | 0;
   33376          79 :  i5 = HEAP8[i4] | 0;
   33377          79 :  i6 = (i5 & 255) + 1 | 0;
   33378          79 :  i7 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
   33379          79 :  if (!(i6 >>> 0 > (HEAPU8[i7] | 0) >>> 0)) {
   33380          79 :   i7 = i5;
   33381          79 :   i7 = i7 & 255;
   33382          79 :   i7 = i7 + 1 | 0;
   33383          79 :   i6 = i7 & 255;
   33384          79 :   HEAP8[i4] = i6;
   33385          79 :   i7 = i7 & 255;
   33386          79 :   i7 = i7 + -1 | 0;
   33387          79 :   _exp2reg(i1, i3, i7);
   33388          79 :   STACKTOP = i2;
   33389          79 :   return;
   33390          79 :  }
   33391          79 :  if (i6 >>> 0 > 249) {
   33392          79 :   _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
   33393          79 :  }
   33394          79 :  HEAP8[i7] = i6;
   33395          79 :  i7 = HEAP8[i4] | 0;
   33396          79 :  i7 = i7 & 255;
   33397          79 :  i7 = i7 + 1 | 0;
   33398          79 :  i6 = i7 & 255;
   33399          79 :  HEAP8[i4] = i6;
   33400          79 :  i7 = i7 & 255;
   33401          79 :  i7 = i7 + -1 | 0;
   33402          79 :  _exp2reg(i1, i3, i7);
   33403          79 :  STACKTOP = i2;
   33404          79 :  return;
   33405          79 : }
   33406           1 : function _lua_next(i2, i4) {
   33407           0 :  i2 = i2 | 0;
   33408           0 :  i4 = i4 | 0;
   33409           0 :  var i1 = 0, i3 = 0, i5 = 0;
   33410           0 :  i1 = STACKTOP;
   33411           0 :  i5 = HEAP32[i2 + 16 >> 2] | 0;
   33412           0 :  do {
   33413           0 :   if ((i4 | 0) <= 0) {
   33414           0 :    if (!((i4 | 0) < -1000999)) {
   33415           0 :     i4 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
   33416           0 :     break;
   33417           0 :    }
   33418           0 :    if ((i4 | 0) == -1001e3) {
   33419           0 :     i4 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
   33420           0 :     break;
   33421           0 :    }
   33422           0 :    i4 = -1001e3 - i4 | 0;
   33423           0 :    i5 = HEAP32[i5 >> 2] | 0;
   33424           0 :    if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   33425           0 :     i4 = i3 + (i4 + -1 << 4) + 16 | 0;
   33426           0 :    } else {
   33427           0 :     i4 = 5192;
   33428           0 :    }
   33429           0 :   } else {
   33430           0 :    i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0;
   33431           0 :    i4 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   33432           0 :   }
   33433           0 :  } while (0);
   33434           0 :  i3 = i2 + 8 | 0;
   33435           0 :  i2 = _luaH_next(i2, HEAP32[i4 >> 2] | 0, (HEAP32[i3 >> 2] | 0) + -16 | 0) | 0;
   33436           0 :  i4 = HEAP32[i3 >> 2] | 0;
   33437           0 :  HEAP32[i3 >> 2] = (i2 | 0) == 0 ? i4 + -16 | 0 : i4 + 16 | 0;
   33438           0 :  STACKTOP = i1;
   33439           0 :  return i2 | 0;
   33440           1 : }
   33441          65 : function _inclinenumber(i1) {
   33442          65 :  i1 = i1 | 0;
   33443          65 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   33444          65 :  i2 = STACKTOP;
   33445          65 :  i4 = HEAP32[i1 >> 2] | 0;
   33446          65 :  i3 = i1 + 56 | 0;
   33447          65 :  i5 = HEAP32[i3 >> 2] | 0;
   33448          65 :  i6 = HEAP32[i5 >> 2] | 0;
   33449          65 :  HEAP32[i5 >> 2] = i6 + -1;
   33450          65 :  if ((i6 | 0) == 0) {
   33451          65 :   i5 = _luaZ_fill(i5) | 0;
   33452          65 :  } else {
   33453          65 :   i6 = i5 + 4 | 0;
   33454          65 :   i5 = HEAP32[i6 >> 2] | 0;
   33455          65 :   HEAP32[i6 >> 2] = i5 + 1;
   33456          65 :   i5 = HEAPU8[i5] | 0;
   33457          65 :  }
   33458          65 :  HEAP32[i1 >> 2] = i5;
   33459          65 :  if ((i5 | 0) == 13 | (i5 | 0) == 10 ? (i5 | 0) != (i4 | 0) : 0) {
   33460          65 :   i3 = HEAP32[i3 >> 2] | 0;
   33461          65 :   i6 = HEAP32[i3 >> 2] | 0;
   33462          65 :   HEAP32[i3 >> 2] = i6 + -1;
   33463          65 :   if ((i6 | 0) == 0) {
   33464          65 :    i3 = _luaZ_fill(i3) | 0;
   33465          65 :   } else {
   33466          65 :    i6 = i3 + 4 | 0;
   33467          65 :    i3 = HEAP32[i6 >> 2] | 0;
   33468          65 :    HEAP32[i6 >> 2] = i3 + 1;
   33469          65 :    i3 = HEAPU8[i3] | 0;
   33470          65 :   }
   33471          65 :   HEAP32[i1 >> 2] = i3;
   33472          65 :  }
   33473          65 :  i5 = i1 + 4 | 0;
   33474          65 :  i6 = HEAP32[i5 >> 2] | 0;
   33475          65 :  HEAP32[i5 >> 2] = i6 + 1;
   33476          65 :  if ((i6 | 0) > 2147483643) {
   33477          65 :   _luaX_syntaxerror(i1, 12560);
   33478          65 :  } else {
   33479          65 :   STACKTOP = i2;
   33480          65 :   return;
   33481          65 :  }
   33482          65 : }
   33483           1 : function _lua_yieldk(i5, i6, i1, i7) {
   33484           0 :  i5 = i5 | 0;
   33485           0 :  i6 = i6 | 0;
   33486           0 :  i1 = i1 | 0;
   33487           0 :  i7 = i7 | 0;
   33488           0 :  var i2 = 0, i3 = 0, i4 = 0;
   33489           0 :  i2 = STACKTOP;
   33490           0 :  STACKTOP = STACKTOP + 16 | 0;
   33491           0 :  i4 = i2;
   33492           0 :  i3 = HEAP32[i5 + 16 >> 2] | 0;
   33493           0 :  if ((HEAP16[i5 + 36 >> 1] | 0) != 0) {
   33494           0 :   if ((HEAP32[(HEAP32[i5 + 12 >> 2] | 0) + 172 >> 2] | 0) == (i5 | 0)) {
   33495           0 :    _luaG_runerror(i5, 2312, i4);
   33496           0 :   } else {
   33497           0 :    _luaG_runerror(i5, 2264, i4);
   33498           0 :   }
   33499           0 :  }
   33500           0 :  HEAP8[i5 + 6 | 0] = 1;
   33501           0 :  HEAP32[i3 + 20 >> 2] = (HEAP32[i3 >> 2] | 0) - (HEAP32[i5 + 28 >> 2] | 0);
   33502           0 :  if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) {
   33503           0 :   STACKTOP = i2;
   33504           0 :   return 0;
   33505           0 :  }
   33506           0 :  HEAP32[i3 + 28 >> 2] = i7;
   33507           0 :  if ((i7 | 0) == 0) {
   33508           0 :   i4 = i5 + 8 | 0;
   33509           0 :   i4 = HEAP32[i4 >> 2] | 0;
   33510           0 :   i7 = ~i6;
   33511           0 :   i7 = i4 + (i7 << 4) | 0;
   33512           0 :   HEAP32[i3 >> 2] = i7;
   33513           0 :   _luaD_throw(i5, 1);
   33514           0 :  }
   33515           0 :  HEAP32[i3 + 24 >> 2] = i1;
   33516           0 :  i4 = i5 + 8 | 0;
   33517           0 :  i4 = HEAP32[i4 >> 2] | 0;
   33518           0 :  i7 = ~i6;
   33519           0 :  i7 = i4 + (i7 << 4) | 0;
   33520           0 :  HEAP32[i3 >> 2] = i7;
   33521           0 :  _luaD_throw(i5, 1);
   33522           0 :  return 0;
   33523           1 : }
   33524          16 : function _luaH_getint(i4, i6) {
   33525          16 :  i4 = i4 | 0;
   33526          16 :  i6 = i6 | 0;
   33527          16 :  var i1 = 0, i2 = 0, d3 = 0.0, i5 = 0, i7 = 0;
   33528          16 :  i1 = STACKTOP;
   33529          16 :  STACKTOP = STACKTOP + 16 | 0;
   33530          16 :  i5 = i1;
   33531          16 :  i7 = i6 + -1 | 0;
   33532          16 :  if (i7 >>> 0 < (HEAP32[i4 + 28 >> 2] | 0) >>> 0) {
   33533          16 :   i7 = (HEAP32[i4 + 12 >> 2] | 0) + (i7 << 4) | 0;
   33534          16 :   STACKTOP = i1;
   33535          16 :   return i7 | 0;
   33536          16 :  }
   33537          16 :  d3 = +(i6 | 0);
   33538          16 :  HEAPF64[i5 >> 3] = d3 + 1.0;
   33539          16 :  i5 = (HEAP32[i5 + 4 >> 2] | 0) + (HEAP32[i5 >> 2] | 0) | 0;
   33540          16 :  if ((i5 | 0) < 0) {
   33541          16 :   i6 = 0 - i5 | 0;
   33542          16 :   i5 = (i5 | 0) == (i6 | 0) ? 0 : i6;
   33543          16 :  }
   33544          16 :  i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((i5 | 0) % ((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
   33545          16 :  while (1) {
   33546          16 :   if ((HEAP32[i4 + 24 >> 2] | 0) == 3 ? +HEAPF64[i4 + 16 >> 3] == d3 : 0) {
   33547          16 :    break;
   33548          16 :   }
   33549          16 :   i4 = HEAP32[i4 + 28 >> 2] | 0;
   33550          16 :   if ((i4 | 0) == 0) {
   33551          16 :    i4 = 5192;
   33552          16 :    i2 = 10;
   33553          16 :    break;
   33554          16 :   }
   33555          16 :  }
   33556          16 :  if ((i2 | 0) == 10) {
   33557          16 :   STACKTOP = i1;
   33558          16 :   return i4 | 0;
   33559          16 :  }
   33560          16 :  i7 = i4;
   33561          16 :  STACKTOP = i1;
   33562          16 :  return i7 | 0;
   33563          16 : }
   33564          13 : function _luaL_checkversion_(i1, d4) {
   33565          13 :  i1 = i1 | 0;
   33566          13 :  d4 = +d4;
   33567          13 :  var i2 = 0, i3 = 0, i5 = 0, d6 = 0.0;
   33568          13 :  i2 = STACKTOP;
   33569          13 :  STACKTOP = STACKTOP + 16 | 0;
   33570          13 :  i3 = i2;
   33571          13 :  i5 = _lua_version(i1) | 0;
   33572          13 :  if ((i5 | 0) == (_lua_version(0) | 0)) {
   33573          13 :   d6 = +HEAPF64[i5 >> 3];
   33574          13 :   if (d6 != d4) {
   33575          13 :    HEAPF64[tempDoublePtr >> 3] = d4;
   33576          13 :    HEAP32[i3 >> 2] = HEAP32[tempDoublePtr >> 2];
   33577          13 :    HEAP32[i3 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
   33578          13 :    i5 = i3 + 8 | 0;
   33579          13 :    HEAPF64[tempDoublePtr >> 3] = d6;
   33580          13 :    HEAP32[i5 >> 2] = HEAP32[tempDoublePtr >> 2];
   33581          13 :    HEAP32[i5 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
   33582          13 :    _luaL_error(i1, 1528, i3) | 0;
   33583          13 :   }
   33584          13 :  } else {
   33585          13 :   _luaL_error(i1, 1496, i3) | 0;
   33586          13 :  }
   33587          13 :  _lua_pushnumber(i1, -4660.0);
   33588          13 :  if ((_lua_tointegerx(i1, -1, 0) | 0) == -4660 ? (_lua_tounsignedx(i1, -1, 0) | 0) == -4660 : 0) {
   33589          13 :   _lua_settop(i1, -2);
   33590          13 :   STACKTOP = i2;
   33591          13 :   return;
   33592          13 :  }
   33593          13 :  _luaL_error(i1, 1584, i3) | 0;
   33594          13 :  _lua_settop(i1, -2);
   33595          13 :  STACKTOP = i2;
   33596          13 :  return;
   33597          13 : }
   33598           1 : function _math_random(i1) {
   33599           0 :  i1 = i1 | 0;
   33600           0 :  var i2 = 0, d3 = 0.0, i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0;
   33601           0 :  i2 = STACKTOP;
   33602           0 :  STACKTOP = STACKTOP + 16 | 0;
   33603           0 :  i4 = i2;
   33604           0 :  d3 = +((_rand() | 0) % 2147483647 | 0 | 0) / 2147483647.0;
   33605           0 :  i5 = _lua_gettop(i1) | 0;
   33606           0 :  if ((i5 | 0) == 0) {
   33607           0 :   _lua_pushnumber(i1, d3);
   33608           0 :   i5 = 1;
   33609           0 :   STACKTOP = i2;
   33610           0 :   return i5 | 0;
   33611           0 :  } else if ((i5 | 0) == 1) {
   33612           0 :   d6 = +_luaL_checknumber(i1, 1);
   33613           0 :   if (!(d6 >= 1.0)) {
   33614           0 :    _luaL_argerror(i1, 1, 4056) | 0;
   33615           0 :   }
   33616           0 :   _lua_pushnumber(i1, +Math_floor(+(d3 * d6)) + 1.0);
   33617           0 :   i5 = 1;
   33618           0 :   STACKTOP = i2;
   33619           0 :   return i5 | 0;
   33620           0 :  } else if ((i5 | 0) == 2) {
   33621           0 :   d6 = +_luaL_checknumber(i1, 1);
   33622           0 :   d7 = +_luaL_checknumber(i1, 2);
   33623           0 :   if (!(d6 <= d7)) {
   33624           0 :    _luaL_argerror(i1, 2, 4056) | 0;
   33625           0 :   }
   33626           0 :   _lua_pushnumber(i1, d6 + +Math_floor(+(d3 * (d7 - d6 + 1.0))));
   33627           0 :   i5 = 1;
   33628           0 :   STACKTOP = i2;
   33629           0 :   return i5 | 0;
   33630           0 :  } else {
   33631           0 :   i5 = _luaL_error(i1, 4080, i4) | 0;
   33632           0 :   STACKTOP = i2;
   33633           0 :   return i5 | 0;
   33634           0 :  }
   33635           0 :  return 0;
   33636           1 : }
   33637           1 : function _push_onecapture(i2, i3, i4, i6) {
   33638           0 :  i2 = i2 | 0;
   33639           0 :  i3 = i3 | 0;
   33640           0 :  i4 = i4 | 0;
   33641           0 :  i6 = i6 | 0;
   33642           0 :  var i1 = 0, i5 = 0;
   33643           0 :  i1 = STACKTOP;
   33644           0 :  STACKTOP = STACKTOP + 16 | 0;
   33645           0 :  i5 = i1;
   33646           0 :  if ((HEAP32[i2 + 20 >> 2] | 0) <= (i3 | 0)) {
   33647           0 :   i2 = HEAP32[i2 + 16 >> 2] | 0;
   33648           0 :   if ((i3 | 0) == 0) {
   33649           0 :    _lua_pushlstring(i2, i4, i6 - i4 | 0) | 0;
   33650           0 :    STACKTOP = i1;
   33651           0 :    return;
   33652           0 :   } else {
   33653           0 :    _luaL_error(i2, 7224, i5) | 0;
   33654           0 :    STACKTOP = i1;
   33655           0 :    return;
   33656           0 :   }
   33657           0 :  }
   33658           0 :  i4 = HEAP32[i2 + (i3 << 3) + 28 >> 2] | 0;
   33659           0 :  if (!((i4 | 0) == -1)) {
   33660           0 :   i5 = HEAP32[i2 + 16 >> 2] | 0;
   33661           0 :   i3 = HEAP32[i2 + (i3 << 3) + 24 >> 2] | 0;
   33662           0 :   if ((i4 | 0) == -2) {
   33663           0 :    _lua_pushinteger(i5, i3 + 1 - (HEAP32[i2 + 4 >> 2] | 0) | 0);
   33664           0 :    STACKTOP = i1;
   33665           0 :    return;
   33666           0 :   }
   33667           0 :  } else {
   33668           0 :   i6 = i2 + 16 | 0;
   33669           0 :   _luaL_error(HEAP32[i6 >> 2] | 0, 7248, i5) | 0;
   33670           0 :   i5 = HEAP32[i6 >> 2] | 0;
   33671           0 :   i3 = HEAP32[i2 + (i3 << 3) + 24 >> 2] | 0;
   33672           0 :  }
   33673           0 :  _lua_pushlstring(i5, i3, i4) | 0;
   33674           0 :  STACKTOP = i1;
   33675           0 :  return;
   33676           1 : }
   33677           1 : function _luaK_nil(i7, i6, i5) {
   33678           0 :  i7 = i7 | 0;
   33679           0 :  i6 = i6 | 0;
   33680           0 :  i5 = i5 | 0;
   33681           0 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
   33682           0 :  i2 = STACKTOP;
   33683           0 :  i9 = i5 + i6 | 0;
   33684           0 :  i1 = i9 + -1 | 0;
   33685           0 :  i10 = HEAP32[i7 + 20 >> 2] | 0;
   33686           0 :  do {
   33687           0 :   if ((i10 | 0) > (HEAP32[i7 + 24 >> 2] | 0) ? (i4 = (HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0) + (i10 + -1 << 2) | 0, i3 = HEAP32[i4 >> 2] | 0, (i3 & 63 | 0) == 4) : 0) {
   33688           0 :    i11 = i3 >>> 6 & 255;
   33689           0 :    i10 = i11 + (i3 >>> 23) | 0;
   33690           0 :    if (!((i11 | 0) <= (i6 | 0) ? (i10 + 1 | 0) >= (i6 | 0) : 0)) {
   33691           0 :     i8 = 5;
   33692           0 :    }
   33693           0 :    if ((i8 | 0) == 5 ? (i11 | 0) < (i6 | 0) | (i11 | 0) > (i9 | 0) : 0) {
   33694           0 :     break;
   33695           0 :    }
   33696           0 :    i5 = (i11 | 0) < (i6 | 0) ? i11 : i6;
   33697           0 :    HEAP32[i4 >> 2] = ((i10 | 0) > (i1 | 0) ? i10 : i1) - i5 << 23 | i5 << 6 & 16320 | i3 & 8372287;
   33698           0 :    STACKTOP = i2;
   33699           0 :    return;
   33700           0 :   }
   33701           0 :  } while (0);
   33702           0 :  _luaK_code(i7, i6 << 6 | (i5 << 23) + -8388608 | 4) | 0;
   33703           0 :  STACKTOP = i2;
   33704           0 :  return;
   33705           1 : }
   33706           1 : function _lua_settable(i1, i5) {
   33707           0 :  i1 = i1 | 0;
   33708           0 :  i5 = i5 | 0;
   33709           0 :  var i2 = 0, i3 = 0, i4 = 0;
   33710           0 :  i2 = STACKTOP;
   33711           0 :  i4 = HEAP32[i1 + 16 >> 2] | 0;
   33712           0 :  do {
   33713           0 :   if ((i5 | 0) <= 0) {
   33714           0 :    if (!((i5 | 0) < -1000999)) {
   33715           0 :     i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
   33716           0 :     break;
   33717           0 :    }
   33718           0 :    if ((i5 | 0) == -1001e3) {
   33719           0 :     i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   33720           0 :     break;
   33721           0 :    }
   33722           0 :    i5 = -1001e3 - i5 | 0;
   33723           0 :    i4 = HEAP32[i4 >> 2] | 0;
   33724           0 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   33725           0 :     i3 = i3 + (i5 + -1 << 4) + 16 | 0;
   33726           0 :    } else {
   33727           0 :     i3 = 5192;
   33728           0 :    }
   33729           0 :   } else {
   33730           0 :    i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   33731           0 :    i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   33732           0 :   }
   33733           0 :  } while (0);
   33734           0 :  i5 = i1 + 8 | 0;
   33735           0 :  i4 = HEAP32[i5 >> 2] | 0;
   33736           0 :  _luaV_settable(i1, i3, i4 + -32 | 0, i4 + -16 | 0);
   33737           0 :  HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + -32;
   33738           0 :  STACKTOP = i2;
   33739           0 :  return;
   33740           1 : }
   33741           1 : function _luaL_findtable(i3, i6, i5, i4) {
   33742           0 :  i3 = i3 | 0;
   33743           0 :  i6 = i6 | 0;
   33744           0 :  i5 = i5 | 0;
   33745           0 :  i4 = i4 | 0;
   33746           0 :  var i1 = 0, i2 = 0, i7 = 0;
   33747           0 :  i2 = STACKTOP;
   33748           0 :  if ((i6 | 0) != 0) {
   33749           0 :   _lua_pushvalue(i3, i6);
   33750           0 :  }
   33751           0 :  while (1) {
   33752           0 :   i6 = _strchr(i5, 46) | 0;
   33753           0 :   if ((i6 | 0) == 0) {
   33754           0 :    i6 = i5 + (_strlen(i5 | 0) | 0) | 0;
   33755           0 :   }
   33756           0 :   i7 = i6 - i5 | 0;
   33757           0 :   _lua_pushlstring(i3, i5, i7) | 0;
   33758           0 :   _lua_rawget(i3, -2);
   33759           0 :   if ((_lua_type(i3, -1) | 0) != 0) {
   33760           0 :    if ((_lua_type(i3, -1) | 0) != 5) {
   33761           0 :     break;
   33762           0 :    }
   33763           0 :   } else {
   33764           0 :    _lua_settop(i3, -2);
   33765           0 :    _lua_createtable(i3, 0, (HEAP8[i6] | 0) == 46 ? 1 : i4);
   33766           0 :    _lua_pushlstring(i3, i5, i7) | 0;
   33767           0 :    _lua_pushvalue(i3, -2);
   33768           0 :    _lua_settable(i3, -4);
   33769           0 :   }
   33770           0 :   _lua_remove(i3, -2);
   33771           0 :   if ((HEAP8[i6] | 0) == 46) {
   33772           0 :    i5 = i6 + 1 | 0;
   33773           0 :   } else {
   33774           0 :    i3 = 0;
   33775           0 :    i1 = 10;
   33776           0 :    break;
   33777           0 :   }
   33778           0 :  }
   33779           0 :  if ((i1 | 0) == 10) {
   33780           0 :   STACKTOP = i2;
   33781           0 :   return i3 | 0;
   33782           0 :  }
   33783           0 :  _lua_settop(i3, -3);
   33784           0 :  i7 = i5;
   33785           0 :  STACKTOP = i2;
   33786           0 :  return i7 | 0;
   33787           1 : }
   33788          16 : function _luaD_call(i1, i4, i5, i8) {
   33789          16 :  i1 = i1 | 0;
   33790          16 :  i4 = i4 | 0;
   33791          16 :  i5 = i5 | 0;
   33792          16 :  i8 = i8 | 0;
   33793          16 :  var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
   33794          16 :  i3 = STACKTOP;
   33795          16 :  STACKTOP = STACKTOP + 16 | 0;
   33796          16 :  i7 = i3;
   33797          16 :  i2 = i1 + 38 | 0;
   33798          16 :  i6 = (HEAP16[i2 >> 1] | 0) + 1 << 16 >> 16;
   33799          16 :  HEAP16[i2 >> 1] = i6;
   33800          16 :  if ((i6 & 65535) > 199) {
   33801          16 :   if (i6 << 16 >> 16 == 200) {
   33802          16 :    _luaG_runerror(i1, 2240, i7);
   33803          16 :   }
   33804          16 :   if ((i6 & 65535) > 224) {
   33805          16 :    _luaD_throw(i1, 6);
   33806          16 :   }
   33807          16 :  }
   33808          16 :  i6 = (i8 | 0) != 0;
   33809          16 :  if (!i6) {
   33810          16 :   i8 = i1 + 36 | 0;
   33811          16 :   HEAP16[i8 >> 1] = (HEAP16[i8 >> 1] | 0) + 1 << 16 >> 16;
   33812          16 :  }
   33813          16 :  if ((_luaD_precall(i1, i4, i5) | 0) == 0) {
   33814          16 :   _luaV_execute(i1);
   33815          16 :  }
   33816          16 :  if (i6) {
   33817          16 :   i8 = HEAP16[i2 >> 1] | 0;
   33818          16 :   i8 = i8 + -1 << 16 >> 16;
   33819          16 :   HEAP16[i2 >> 1] = i8;
   33820          16 :   STACKTOP = i3;
   33821          16 :   return;
   33822          16 :  }
   33823          16 :  i8 = i1 + 36 | 0;
   33824          16 :  HEAP16[i8 >> 1] = (HEAP16[i8 >> 1] | 0) + -1 << 16 >> 16;
   33825          16 :  i8 = HEAP16[i2 >> 1] | 0;
   33826          16 :  i8 = i8 + -1 << 16 >> 16;
   33827          16 :  HEAP16[i2 >> 1] = i8;
   33828          16 :  STACKTOP = i3;
   33829          16 :  return;
   33830          16 : }
   33831           1 : function _pushline(i6, i1) {
   33832           0 :  i6 = i6 | 0;
   33833           0 :  i1 = i1 | 0;
   33834           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
   33835           0 :  i2 = STACKTOP;
   33836           0 :  STACKTOP = STACKTOP + 528 | 0;
   33837           0 :  i4 = i2;
   33838           0 :  i3 = i2 + 8 | 0;
   33839           0 :  i7 = (i1 | 0) != 0;
   33840           0 :  _lua_getglobal(i6, i7 ? 288 : 296);
   33841           0 :  i8 = _lua_tolstring(i6, -1, 0) | 0;
   33842           0 :  if ((i8 | 0) == 0) {
   33843           0 :   i8 = i7 ? 312 : 320;
   33844           0 :  }
   33845           0 :  i7 = HEAP32[_stdout >> 2] | 0;
   33846           0 :  _fputs(i8 | 0, i7 | 0) | 0;
   33847           0 :  _fflush(i7 | 0) | 0;
   33848           0 :  i8 = (_fgets(i3 | 0, 512, HEAP32[_stdin >> 2] | 0) | 0) == 0;
   33849           0 :  _lua_settop(i6, -2);
   33850           0 :  if (i8) {
   33851           0 :   i8 = 0;
   33852           0 :   STACKTOP = i2;
   33853           0 :   return i8 | 0;
   33854           0 :  }
   33855           0 :  i7 = _strlen(i3 | 0) | 0;
   33856           0 :  if ((i7 | 0) != 0 ? (i5 = i3 + (i7 + -1) | 0, (HEAP8[i5] | 0) == 10) : 0) {
   33857           0 :   HEAP8[i5] = 0;
   33858           0 :  }
   33859           0 :  if ((i1 | 0) != 0 ? (HEAP8[i3] | 0) == 61 : 0) {
   33860           0 :   HEAP32[i4 >> 2] = i3 + 1;
   33861           0 :   _lua_pushfstring(i6, 272, i4) | 0;
   33862           0 :   i8 = 1;
   33863           0 :   STACKTOP = i2;
   33864           0 :   return i8 | 0;
   33865           0 :  }
   33866           0 :  _lua_pushstring(i6, i3) | 0;
   33867           0 :  i8 = 1;
   33868           0 :  STACKTOP = i2;
   33869           0 :  return i8 | 0;
   33870           1 : }
   33871           1 : function _db_getlocal(i1) {
   33872           0 :  i1 = i1 | 0;
   33873           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   33874           0 :  i2 = STACKTOP;
   33875           0 :  STACKTOP = STACKTOP + 112 | 0;
   33876           0 :  i4 = i2;
   33877           0 :  if ((_lua_type(i1, 1) | 0) == 8) {
   33878           0 :   i3 = _lua_tothread(i1, 1) | 0;
   33879           0 :   i6 = 1;
   33880           0 :  } else {
   33881           0 :   i3 = i1;
   33882           0 :   i6 = 0;
   33883           0 :  }
   33884           0 :  i5 = _luaL_checkinteger(i1, i6 | 2) | 0;
   33885           0 :  i6 = i6 + 1 | 0;
   33886           0 :  if ((_lua_type(i1, i6) | 0) == 6) {
   33887           0 :   _lua_pushvalue(i1, i6);
   33888           0 :   _lua_pushstring(i1, _lua_getlocal(i1, 0, i5) | 0) | 0;
   33889           0 :   i6 = 1;
   33890           0 :   STACKTOP = i2;
   33891           0 :   return i6 | 0;
   33892           0 :  }
   33893           0 :  if ((_lua_getstack(i3, _luaL_checkinteger(i1, i6) | 0, i4) | 0) == 0) {
   33894           0 :   i6 = _luaL_argerror(i1, i6, 11560) | 0;
   33895           0 :   STACKTOP = i2;
   33896           0 :   return i6 | 0;
   33897           0 :  }
   33898           0 :  i4 = _lua_getlocal(i3, i4, i5) | 0;
   33899           0 :  if ((i4 | 0) == 0) {
   33900           0 :   _lua_pushnil(i1);
   33901           0 :   i6 = 1;
   33902           0 :   STACKTOP = i2;
   33903           0 :   return i6 | 0;
   33904           0 :  } else {
   33905           0 :   _lua_xmove(i3, i1, 1);
   33906           0 :   _lua_pushstring(i1, i4) | 0;
   33907           0 :   _lua_pushvalue(i1, -2);
   33908           0 :   i6 = 2;
   33909           0 :   STACKTOP = i2;
   33910           0 :   return i6 | 0;
   33911           0 :  }
   33912           0 :  return 0;
   33913           1 : }
   33914           1 : function _luaB_print(i1) {
   33915           0 :  i1 = i1 | 0;
   33916           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
   33917           0 :  i3 = STACKTOP;
   33918           0 :  STACKTOP = STACKTOP + 16 | 0;
   33919           0 :  i2 = i3;
   33920           0 :  i4 = i3 + 4 | 0;
   33921           0 :  i6 = _lua_gettop(i1) | 0;
   33922           0 :  _lua_getglobal(i1, 9584);
   33923           0 :  i5 = HEAP32[_stdout >> 2] | 0;
   33924           0 :  L1 : do {
   33925           0 :   if ((i6 | 0) >= 1) {
   33926           0 :    i7 = 1;
   33927           0 :    while (1) {
   33928           0 :     _lua_pushvalue(i1, -1);
   33929           0 :     _lua_pushvalue(i1, i7);
   33930           0 :     _lua_callk(i1, 1, 1, 0, 0);
   33931           0 :     i8 = _lua_tolstring(i1, -1, i4) | 0;
   33932           0 :     if ((i8 | 0) == 0) {
   33933           0 :      break;
   33934           0 :     }
   33935           0 :     if ((i7 | 0) > 1) {
   33936           0 :      _fputc(9, i5 | 0) | 0;
   33937           0 :     }
   33938           0 :     _fwrite(i8 | 0, 1, HEAP32[i4 >> 2] | 0, i5 | 0) | 0;
   33939           0 :     _lua_settop(i1, -2);
   33940           0 :     if ((i7 | 0) < (i6 | 0)) {
   33941           0 :      i7 = i7 + 1 | 0;
   33942           0 :     } else {
   33943           0 :      break L1;
   33944           0 :     }
   33945           0 :    }
   33946           0 :    i8 = _luaL_error(i1, 9816, i2) | 0;
   33947           0 :    STACKTOP = i3;
   33948           0 :    return i8 | 0;
   33949           0 :   }
   33950           0 :  } while (0);
   33951           0 :  _fputc(10, i5 | 0) | 0;
   33952           0 :  _fflush(i5 | 0) | 0;
   33953           0 :  i8 = 0;
   33954           0 :  STACKTOP = i3;
   33955           0 :  return i8 | 0;
   33956           1 : }
   33957           1 : function _luaB_load(i1) {
   33958           0 :  i1 = i1 | 0;
   33959           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   33960           0 :  i2 = STACKTOP;
   33961           0 :  STACKTOP = STACKTOP + 16 | 0;
   33962           0 :  i5 = i2;
   33963           0 :  i6 = _lua_tolstring(i1, 1, i5) | 0;
   33964           0 :  i4 = _luaL_optlstring(i1, 3, 9872, 0) | 0;
   33965           0 :  i3 = (_lua_type(i1, 4) | 0) != -1;
   33966           0 :  if ((i6 | 0) == 0) {
   33967           0 :   i6 = _luaL_optlstring(i1, 2, 9880, 0) | 0;
   33968           0 :   _luaL_checktype(i1, 1, 6);
   33969           0 :   _lua_settop(i1, 5);
   33970           0 :   i4 = _lua_load(i1, 3, 0, i6, i4) | 0;
   33971           0 :  } else {
   33972           0 :   i7 = _luaL_optlstring(i1, 2, i6, 0) | 0;
   33973           0 :   i4 = _luaL_loadbufferx(i1, i6, HEAP32[i5 >> 2] | 0, i7, i4) | 0;
   33974           0 :  }
   33975           0 :  if ((i4 | 0) != 0) {
   33976           0 :   _lua_pushnil(i1);
   33977           0 :   _lua_insert(i1, -2);
   33978           0 :   i7 = 2;
   33979           0 :   STACKTOP = i2;
   33980           0 :   return i7 | 0;
   33981           0 :  }
   33982           0 :  if (!i3) {
   33983           0 :   i7 = 1;
   33984           0 :   STACKTOP = i2;
   33985           0 :   return i7 | 0;
   33986           0 :  }
   33987           0 :  _lua_pushvalue(i1, i3 ? 4 : 0);
   33988           0 :  if ((_lua_setupvalue(i1, -2, 1) | 0) != 0) {
   33989           0 :   i7 = 1;
   33990           0 :   STACKTOP = i2;
   33991           0 :   return i7 | 0;
   33992           0 :  }
   33993           0 :  _lua_settop(i1, -2);
   33994           0 :  i7 = 1;
   33995           0 :  STACKTOP = i2;
   33996           0 :  return i7 | 0;
   33997           1 : }
   33998           1 : function _db_debug(i2) {
   33999           0 :  i2 = i2 | 0;
   34000           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   34001           0 :  i1 = STACKTOP;
   34002           0 :  STACKTOP = STACKTOP + 256 | 0;
   34003           0 :  i6 = i1;
   34004           0 :  i4 = i1 + 4 | 0;
   34005           0 :  i3 = HEAP32[_stderr >> 2] | 0;
   34006           0 :  _fwrite(12040, 11, 1, i3 | 0) | 0;
   34007           0 :  _fflush(i3 | 0) | 0;
   34008           0 :  i5 = HEAP32[_stdin >> 2] | 0;
   34009           0 :  if ((_fgets(i4 | 0, 250, i5 | 0) | 0) == 0) {
   34010           0 :   STACKTOP = i1;
   34011           0 :   return 0;
   34012           0 :  }
   34013           0 :  while (1) {
   34014           0 :   if ((_strcmp(i4, 12056) | 0) == 0) {
   34015           0 :    i2 = 7;
   34016           0 :    break;
   34017           0 :   }
   34018           0 :   if (!((_luaL_loadbufferx(i2, i4, _strlen(i4 | 0) | 0, 12064, 0) | 0) == 0 ? (_lua_pcallk(i2, 0, 0, 0, 0, 0) | 0) == 0 : 0)) {
   34019           0 :    HEAP32[i6 >> 2] = _lua_tolstring(i2, -1, 0) | 0;
   34020           0 :    _fprintf(i3 | 0, 12088, i6 | 0) | 0;
   34021           0 :    _fflush(i3 | 0) | 0;
   34022           0 :   }
   34023           0 :   _lua_settop(i2, 0);
   34024           0 :   _fwrite(12040, 11, 1, i3 | 0) | 0;
   34025           0 :   _fflush(i3 | 0) | 0;
   34026           0 :   if ((_fgets(i4 | 0, 250, i5 | 0) | 0) == 0) {
   34027           0 :    i2 = 7;
   34028           0 :    break;
   34029           0 :   }
   34030           0 :  }
   34031           0 :  if ((i2 | 0) == 7) {
   34032           0 :   STACKTOP = i1;
   34033           0 :   return 0;
   34034           0 :  }
   34035           0 :  return 0;
   34036           1 : }
   34037          13 : function _luaL_prepbuffsize(i2, i7) {
   34038          13 :  i2 = i2 | 0;
   34039          13 :  i7 = i7 | 0;
   34040          13 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0;
   34041          13 :  i3 = STACKTOP;
   34042          13 :  STACKTOP = STACKTOP + 16 | 0;
   34043          13 :  i1 = HEAP32[i2 + 12 >> 2] | 0;
   34044          13 :  i4 = i2 + 4 | 0;
   34045          13 :  i8 = HEAP32[i4 >> 2] | 0;
   34046          13 :  i5 = i2 + 8 | 0;
   34047          13 :  i6 = HEAP32[i5 >> 2] | 0;
   34048          13 :  if (!((i8 - i6 | 0) >>> 0 < i7 >>> 0)) {
   34049          13 :   i7 = HEAP32[i2 >> 2] | 0;
   34050          13 :   i8 = i6;
   34051          13 :   i8 = i7 + i8 | 0;
   34052          13 :   STACKTOP = i3;
   34053          13 :   return i8 | 0;
   34054          13 :  }
   34055          13 :  i8 = i8 << 1;
   34056          13 :  i8 = (i8 - i6 | 0) >>> 0 < i7 >>> 0 ? i6 + i7 | 0 : i8;
   34057          13 :  if (i8 >>> 0 < i6 >>> 0 | (i8 - i6 | 0) >>> 0 < i7 >>> 0) {
   34058          13 :   _luaL_error(i1, 1272, i3) | 0;
   34059          13 :  }
   34060          13 :  i6 = _lua_newuserdata(i1, i8) | 0;
   34061          13 :  _memcpy(i6 | 0, HEAP32[i2 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
   34062          13 :  if ((HEAP32[i2 >> 2] | 0) != (i2 + 16 | 0)) {
   34063          13 :   _lua_remove(i1, -2);
   34064          13 :  }
   34065          13 :  HEAP32[i2 >> 2] = i6;
   34066          13 :  HEAP32[i4 >> 2] = i8;
   34067          13 :  i7 = i6;
   34068          13 :  i8 = HEAP32[i5 >> 2] | 0;
   34069          13 :  i8 = i7 + i8 | 0;
   34070          13 :  STACKTOP = i3;
   34071          13 :  return i8 | 0;
   34072          13 : }
   34073           1 : function _luaG_runerror(i1, i5, i4) {
   34074           0 :  i1 = i1 | 0;
   34075           0 :  i5 = i5 | 0;
   34076           0 :  i4 = i4 | 0;
   34077           0 :  var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
   34078           0 :  i6 = STACKTOP;
   34079           0 :  STACKTOP = STACKTOP + 96 | 0;
   34080           0 :  i2 = i6;
   34081           0 :  i3 = i6 + 32 | 0;
   34082           0 :  i6 = i6 + 16 | 0;
   34083           0 :  HEAP32[i6 >> 2] = i4;
   34084           0 :  i4 = _luaO_pushvfstring(i1, i5, i6) | 0;
   34085           0 :  i6 = HEAP32[i1 + 16 >> 2] | 0;
   34086           0 :  if ((HEAP8[i6 + 18 | 0] & 1) == 0) {
   34087           0 :   _luaG_errormsg(i1);
   34088           0 :  }
   34089           0 :  i5 = HEAP32[(HEAP32[HEAP32[i6 >> 2] >> 2] | 0) + 12 >> 2] | 0;
   34090           0 :  i7 = HEAP32[i5 + 20 >> 2] | 0;
   34091           0 :  if ((i7 | 0) == 0) {
   34092           0 :   i6 = 0;
   34093           0 :  } else {
   34094           0 :   i6 = HEAP32[i7 + (((HEAP32[i6 + 28 >> 2] | 0) - (HEAP32[i5 + 12 >> 2] | 0) >> 2) + -1 << 2) >> 2] | 0;
   34095           0 :  }
   34096           0 :  i5 = HEAP32[i5 + 36 >> 2] | 0;
   34097           0 :  if ((i5 | 0) == 0) {
   34098           0 :   HEAP8[i3] = 63;
   34099           0 :   HEAP8[i3 + 1 | 0] = 0;
   34100           0 :  } else {
   34101           0 :   _luaO_chunkid(i3, i5 + 16 | 0, 60);
   34102           0 :  }
   34103           0 :  HEAP32[i2 >> 2] = i3;
   34104           0 :  HEAP32[i2 + 4 >> 2] = i6;
   34105           0 :  HEAP32[i2 + 8 >> 2] = i4;
   34106           0 :  _luaO_pushfstring(i1, 2024, i2) | 0;
   34107           0 :  _luaG_errormsg(i1);
   34108           1 : }
   34109           1 : function _db_upvaluejoin(i1) {
   34110           0 :  i1 = i1 | 0;
   34111           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   34112           0 :  i3 = STACKTOP;
   34113           0 :  STACKTOP = STACKTOP + 112 | 0;
   34114           0 :  i4 = i3;
   34115           0 :  i2 = _luaL_checkinteger(i1, 2) | 0;
   34116           0 :  _luaL_checktype(i1, 1, 6);
   34117           0 :  _lua_pushvalue(i1, 1);
   34118           0 :  _lua_getinfo(i1, 11728, i4) | 0;
   34119           0 :  if (!((i2 | 0) > 0 ? (i2 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) {
   34120           0 :   _luaL_argerror(i1, 2, 11736) | 0;
   34121           0 :  }
   34122           0 :  i5 = _luaL_checkinteger(i1, 4) | 0;
   34123           0 :  _luaL_checktype(i1, 3, 6);
   34124           0 :  _lua_pushvalue(i1, 3);
   34125           0 :  _lua_getinfo(i1, 11728, i4) | 0;
   34126           0 :  if (!((i5 | 0) > 0 ? (i5 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) {
   34127           0 :   _luaL_argerror(i1, 4, 11736) | 0;
   34128           0 :  }
   34129           0 :  if ((_lua_iscfunction(i1, 1) | 0) != 0) {
   34130           0 :   _luaL_argerror(i1, 1, 11760) | 0;
   34131           0 :  }
   34132           0 :  if ((_lua_iscfunction(i1, 3) | 0) == 0) {
   34133           0 :   _lua_upvaluejoin(i1, 1, i2, 3, i5);
   34134           0 :   STACKTOP = i3;
   34135           0 :   return 0;
   34136           0 :  }
   34137           0 :  _luaL_argerror(i1, 3, 11760) | 0;
   34138           0 :  _lua_upvaluejoin(i1, 1, i2, 3, i5);
   34139           0 :  STACKTOP = i3;
   34140           0 :  return 0;
   34141           1 : }
   34142           7 : function _luaK_jump(i1) {
   34143           7 :  i1 = i1 | 0;
   34144           7 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
   34145           7 :  i3 = STACKTOP;
   34146           7 :  i2 = i1 + 28 | 0;
   34147           7 :  i7 = HEAP32[i2 >> 2] | 0;
   34148           7 :  HEAP32[i2 >> 2] = -1;
   34149           7 :  i2 = _luaK_code(i1, 2147450903) | 0;
   34150           7 :  if ((i7 | 0) == -1) {
   34151           7 :   i9 = i2;
   34152           7 :   STACKTOP = i3;
   34153           7 :   return i9 | 0;
   34154           7 :  }
   34155           7 :  if ((i2 | 0) == -1) {
   34156           7 :   i9 = i7;
   34157           7 :   STACKTOP = i3;
   34158           7 :   return i9 | 0;
   34159           7 :  }
   34160           7 :  i6 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
   34161           7 :  i8 = i2;
   34162           7 :  while (1) {
   34163           7 :   i5 = i6 + (i8 << 2) | 0;
   34164           7 :   i4 = HEAP32[i5 >> 2] | 0;
   34165           7 :   i9 = (i4 >>> 14) + -131071 | 0;
   34166           7 :   if ((i9 | 0) == -1) {
   34167           7 :    break;
   34168           7 :   }
   34169           7 :   i9 = i8 + 1 + i9 | 0;
   34170           7 :   if ((i9 | 0) == -1) {
   34171           7 :    break;
   34172           7 :   } else {
   34173           7 :    i8 = i9;
   34174           7 :   }
   34175           7 :  }
   34176           7 :  i6 = i7 + ~i8 | 0;
   34177           7 :  if ((((i6 | 0) > -1 ? i6 : 0 - i6 | 0) | 0) > 131071) {
   34178           7 :   _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
   34179           7 :  }
   34180           7 :  HEAP32[i5 >> 2] = (i6 << 14) + 2147467264 | i4 & 16383;
   34181           7 :  i9 = i2;
   34182           7 :  STACKTOP = i3;
   34183           7 :  return i9 | 0;
   34184           7 : }
   34185           1 : function _findfield(i2, i3, i4) {
   34186           0 :  i2 = i2 | 0;
   34187           0 :  i3 = i3 | 0;
   34188           0 :  i4 = i4 | 0;
   34189           0 :  var i1 = 0;
   34190           0 :  i1 = STACKTOP;
   34191           0 :  L1 : do {
   34192           0 :   if (((i4 | 0) != 0 ? (_lua_type(i2, -1) | 0) == 5 : 0) ? (_lua_pushnil(i2), (_lua_next(i2, -2) | 0) != 0) : 0) {
   34193           0 :    i4 = i4 + -1 | 0;
   34194           0 :    while (1) {
   34195           0 :     if ((_lua_type(i2, -2) | 0) == 4) {
   34196           0 :      if ((_lua_rawequal(i2, i3, -1) | 0) != 0) {
   34197           0 :       i3 = 7;
   34198           0 :       break;
   34199           0 :      }
   34200           0 :      if ((_findfield(i2, i3, i4) | 0) != 0) {
   34201           0 :       i3 = 9;
   34202           0 :       break;
   34203           0 :      }
   34204           0 :     }
   34205           0 :     _lua_settop(i2, -2);
   34206           0 :     if ((_lua_next(i2, -2) | 0) == 0) {
   34207           0 :      i2 = 0;
   34208           0 :      break L1;
   34209           0 :     }
   34210           0 :    }
   34211           0 :    if ((i3 | 0) == 7) {
   34212           0 :     _lua_settop(i2, -2);
   34213           0 :     i2 = 1;
   34214           0 :     break;
   34215           0 :    } else if ((i3 | 0) == 9) {
   34216           0 :     _lua_remove(i2, -2);
   34217           0 :     _lua_pushlstring(i2, 1776, 1) | 0;
   34218           0 :     _lua_insert(i2, -2);
   34219           0 :     _lua_concat(i2, 3);
   34220           0 :     i2 = 1;
   34221           0 :     break;
   34222           0 :    }
   34223           0 :   } else {
   34224           0 :    i2 = 0;
   34225           0 :   }
   34226           0 :  } while (0);
   34227           0 :  STACKTOP = i1;
   34228           0 :  return i2 | 0;
   34229           1 : }
   34230           1 : function _db_gethook(i1) {
   34231           0 :  i1 = i1 | 0;
   34232           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   34233           0 :  i3 = STACKTOP;
   34234           0 :  STACKTOP = STACKTOP + 16 | 0;
   34235           0 :  i2 = i3;
   34236           0 :  if ((_lua_type(i1, 1) | 0) == 8) {
   34237           0 :   i4 = _lua_tothread(i1, 1) | 0;
   34238           0 :  } else {
   34239           0 :   i4 = i1;
   34240           0 :  }
   34241           0 :  i5 = _lua_gethookmask(i4) | 0;
   34242           0 :  i6 = _lua_gethook(i4) | 0;
   34243           0 :  if ((i6 | 0) != 0 & (i6 | 0) != 9) {
   34244           0 :   _lua_pushlstring(i1, 12024, 13) | 0;
   34245           0 :  } else {
   34246           0 :   _luaL_getsubtable(i1, -1001e3, 11584) | 0;
   34247           0 :   _lua_pushthread(i4) | 0;
   34248           0 :   _lua_xmove(i4, i1, 1);
   34249           0 :   _lua_rawget(i1, -2);
   34250           0 :   _lua_remove(i1, -2);
   34251           0 :  }
   34252           0 :  if ((i5 & 1 | 0) == 0) {
   34253           0 :   i6 = 0;
   34254           0 :  } else {
   34255           0 :   HEAP8[i2] = 99;
   34256           0 :   i6 = 1;
   34257           0 :  }
   34258           0 :  if ((i5 & 2 | 0) != 0) {
   34259           0 :   HEAP8[i2 + i6 | 0] = 114;
   34260           0 :   i6 = i6 + 1 | 0;
   34261           0 :  }
   34262           0 :  if ((i5 & 4 | 0) != 0) {
   34263           0 :   HEAP8[i2 + i6 | 0] = 108;
   34264           0 :   i6 = i6 + 1 | 0;
   34265           0 :  }
   34266           0 :  HEAP8[i2 + i6 | 0] = 0;
   34267           0 :  _lua_pushstring(i1, i2) | 0;
   34268           0 :  _lua_pushinteger(i1, _lua_gethookcount(i4) | 0);
   34269           0 :  STACKTOP = i3;
   34270           0 :  return 3;
   34271           1 : }
   34272           1 : function _lua_tothread(i3, i5) {
   34273           0 :  i3 = i3 | 0;
   34274           0 :  i5 = i5 | 0;
   34275           0 :  var i1 = 0, i2 = 0, i4 = 0;
   34276           0 :  i1 = STACKTOP;
   34277           0 :  i4 = HEAP32[i3 + 16 >> 2] | 0;
   34278           0 :  do {
   34279           0 :   if ((i5 | 0) <= 0) {
   34280           0 :    if (!((i5 | 0) < -1000999)) {
   34281           0 :     i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
   34282           0 :     break;
   34283           0 :    }
   34284           0 :    if ((i5 | 0) == -1001e3) {
   34285           0 :     i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
   34286           0 :     break;
   34287           0 :    }
   34288           0 :    i3 = -1001e3 - i5 | 0;
   34289           0 :    i4 = HEAP32[i4 >> 2] | 0;
   34290           0 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
   34291           0 :     i2 = i2 + (i3 + -1 << 4) + 16 | 0;
   34292           0 :    } else {
   34293           0 :     i2 = 5192;
   34294           0 :    }
   34295           0 :   } else {
   34296           0 :    i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   34297           0 :    i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
   34298           0 :   }
   34299           0 :  } while (0);
   34300           0 :  if ((HEAP32[i2 + 8 >> 2] | 0) != 72) {
   34301           0 :   i5 = 0;
   34302           0 :   STACKTOP = i1;
   34303           0 :   return i5 | 0;
   34304           0 :  }
   34305           0 :  i5 = HEAP32[i2 >> 2] | 0;
   34306           0 :  STACKTOP = i1;
   34307           0 :  return i5 | 0;
   34308           1 : }
   34309           1 : function _luaD_throw(i1, i2) {
   34310           0 :  i1 = i1 | 0;
   34311           0 :  i2 = i2 | 0;
   34312           0 :  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
   34313           0 :  i3 = i1 + 64 | 0;
   34314           0 :  i4 = HEAP32[i3 >> 2] | 0;
   34315           0 :  if ((i4 | 0) != 0) {
   34316           0 :   HEAP32[i4 + 160 >> 2] = i2;
   34317           0 :   _longjmp((HEAP32[i3 >> 2] | 0) + 4 | 0, 1);
   34318           0 :  }
   34319           0 :  HEAP8[i1 + 6 | 0] = i2;
   34320           0 :  i4 = i1 + 12 | 0;
   34321           0 :  i3 = HEAP32[i4 >> 2] | 0;
   34322           0 :  i5 = HEAP32[i3 + 172 >> 2] | 0;
   34323           0 :  if ((HEAP32[i5 + 64 >> 2] | 0) != 0) {
   34324           0 :   i6 = HEAP32[i1 + 8 >> 2] | 0;
   34325           0 :   i9 = i5 + 8 | 0;
   34326           0 :   i5 = HEAP32[i9 >> 2] | 0;
   34327           0 :   HEAP32[i9 >> 2] = i5 + 16;
   34328           0 :   i9 = i6 + -16 | 0;
   34329           0 :   i8 = HEAP32[i9 + 4 >> 2] | 0;
   34330           0 :   i7 = i5;
   34331           0 :   HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
   34332           0 :   HEAP32[i7 + 4 >> 2] = i8;
   34333           0 :   HEAP32[i5 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
   34334           0 :   _luaD_throw(HEAP32[(HEAP32[i4 >> 2] | 0) + 172 >> 2] | 0, i2);
   34335           0 :  }
   34336           0 :  i2 = HEAP32[i3 + 168 >> 2] | 0;
   34337           0 :  if ((i2 | 0) == 0) {
   34338           0 :   _abort();
   34339           0 :  }
   34340           0 :  FUNCTION_TABLE_ii[i2 & 255](i1) | 0;
   34341           0 :  _abort();
   34342           1 : }
   34343           1 : function _lua_len(i1, i5) {
   34344           1 :  i1 = i1 | 0;
   34345           1 :  i5 = i5 | 0;
   34346           1 :  var i2 = 0, i3 = 0, i4 = 0;
   34347           1 :  i2 = STACKTOP;
   34348           1 :  i4 = HEAP32[i1 + 16 >> 2] | 0;
   34349           1 :  do {
   34350           1 :   if ((i5 | 0) <= 0) {
   34351           1 :    if (!((i5 | 0) < -1000999)) {
   34352           1 :     i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
   34353           1 :     break;
   34354           1 :    }
   34355           1 :    if ((i5 | 0) == -1001e3) {
   34356           1 :     i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   34357           1 :     break;
   34358           1 :    }
   34359           1 :    i5 = -1001e3 - i5 | 0;
   34360           1 :    i4 = HEAP32[i4 >> 2] | 0;
   34361           1 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   34362           1 :     i3 = i3 + (i5 + -1 << 4) + 16 | 0;
   34363           1 :    } else {
   34364           1 :     i3 = 5192;
   34365           1 :    }
   34366           1 :   } else {
   34367           1 :    i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   34368           1 :    i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   34369           1 :   }
   34370           1 :  } while (0);
   34371           1 :  i5 = i1 + 8 | 0;
   34372           1 :  _luaV_objlen(i1, HEAP32[i5 >> 2] | 0, i3);
   34373           1 :  HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
   34374           1 :  STACKTOP = i2;
   34375           1 :  return;
   34376           1 : }
   34377           1 : function _read_line(i4, i5, i1) {
   34378           0 :  i4 = i4 | 0;
   34379           0 :  i5 = i5 | 0;
   34380           0 :  i1 = i1 | 0;
   34381           0 :  var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
   34382           0 :  i3 = STACKTOP;
   34383           0 :  STACKTOP = STACKTOP + 1040 | 0;
   34384           0 :  i2 = i3;
   34385           0 :  _luaL_buffinit(i4, i2);
   34386           0 :  i7 = _luaL_prepbuffsize(i2, 1024) | 0;
   34387           0 :  L1 : do {
   34388           0 :   if ((_fgets(i7 | 0, 1024, i5 | 0) | 0) != 0) {
   34389           0 :    i6 = i2 + 8 | 0;
   34390           0 :    while (1) {
   34391           0 :     i8 = _strlen(i7 | 0) | 0;
   34392           0 :     if ((i8 | 0) != 0 ? (HEAP8[i7 + (i8 + -1) | 0] | 0) == 10 : 0) {
   34393           0 :      break;
   34394           0 :     }
   34395           0 :     HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i8;
   34396           0 :     i7 = _luaL_prepbuffsize(i2, 1024) | 0;
   34397           0 :     if ((_fgets(i7 | 0, 1024, i5 | 0) | 0) == 0) {
   34398           0 :      break L1;
   34399           0 :     }
   34400           0 :    }
   34401           0 :    HEAP32[i6 >> 2] = i8 - i1 + (HEAP32[i6 >> 2] | 0);
   34402           0 :    _luaL_pushresult(i2);
   34403           0 :    i8 = 1;
   34404           0 :    STACKTOP = i3;
   34405           0 :    return i8 | 0;
   34406           0 :   }
   34407           0 :  } while (0);
   34408           0 :  _luaL_pushresult(i2);
   34409           0 :  i8 = (_lua_rawlen(i4, -1) | 0) != 0 | 0;
   34410           0 :  STACKTOP = i3;
   34411           0 :  return i8 | 0;
   34412           1 : }
   34413           1 : function _luaL_tolstring(i1, i5, i4) {
   34414           0 :  i1 = i1 | 0;
   34415           0 :  i5 = i5 | 0;
   34416           0 :  i4 = i4 | 0;
   34417           0 :  var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
   34418           0 :  i2 = STACKTOP;
   34419           0 :  STACKTOP = STACKTOP + 16 | 0;
   34420           0 :  i3 = i2;
   34421           0 :  do {
   34422           0 :   if ((_luaL_callmeta(i1, i5, 1384) | 0) == 0) {
   34423           0 :    i6 = _lua_type(i1, i5) | 0;
   34424           0 :    if ((i6 | 0) == 0) {
   34425           0 :     _lua_pushlstring(i1, 1416, 3) | 0;
   34426           0 :     break;
   34427           0 :    } else if ((i6 | 0) == 1) {
   34428           0 :     i6 = (_lua_toboolean(i1, i5) | 0) != 0;
   34429           0 :     _lua_pushstring(i1, i6 ? 1400 : 1408) | 0;
   34430           0 :     break;
   34431           0 :    } else if ((i6 | 0) == 4 | (i6 | 0) == 3) {
   34432           0 :     _lua_pushvalue(i1, i5);
   34433           0 :     break;
   34434           0 :    } else {
   34435           0 :     i7 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
   34436           0 :     i6 = _lua_topointer(i1, i5) | 0;
   34437           0 :     HEAP32[i3 >> 2] = i7;
   34438           0 :     HEAP32[i3 + 4 >> 2] = i6;
   34439           0 :     _lua_pushfstring(i1, 1424, i3) | 0;
   34440           0 :     break;
   34441           0 :    }
   34442           0 :   }
   34443           0 :  } while (0);
   34444           0 :  i7 = _lua_tolstring(i1, -1, i4) | 0;
   34445           0 :  STACKTOP = i2;
   34446           0 :  return i7 | 0;
   34447           1 : }
   34448           1 : function _save(i7, i1) {
   34449           0 :  i7 = i7 | 0;
   34450           0 :  i1 = i1 | 0;
   34451           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0;
   34452           0 :  i2 = STACKTOP;
   34453           0 :  i4 = HEAP32[i7 + 60 >> 2] | 0;
   34454           0 :  i3 = i4 + 4 | 0;
   34455           0 :  i8 = HEAP32[i3 >> 2] | 0;
   34456           0 :  i6 = i4 + 8 | 0;
   34457           0 :  i5 = HEAP32[i6 >> 2] | 0;
   34458           0 :  if (!((i8 + 1 | 0) >>> 0 > i5 >>> 0)) {
   34459           0 :   i6 = HEAP32[i4 >> 2] | 0;
   34460           0 :   i7 = i1 & 255;
   34461           0 :   i5 = i8 + 1 | 0;
   34462           0 :   HEAP32[i3 >> 2] = i5;
   34463           0 :   i8 = i6 + i8 | 0;
   34464           0 :   HEAP8[i8] = i7;
   34465           0 :   STACKTOP = i2;
   34466           0 :   return;
   34467           0 :  }
   34468           0 :  if (i5 >>> 0 > 2147483645) {
   34469           0 :   _lexerror(i7, 12368, 0);
   34470           0 :  }
   34471           0 :  i8 = i5 << 1;
   34472           0 :  i7 = HEAP32[i7 + 52 >> 2] | 0;
   34473           0 :  if ((i8 | 0) == -2) {
   34474           0 :   _luaM_toobig(i7);
   34475           0 :  }
   34476           0 :  i7 = _luaM_realloc_(i7, HEAP32[i4 >> 2] | 0, i5, i8) | 0;
   34477           0 :  HEAP32[i4 >> 2] = i7;
   34478           0 :  HEAP32[i6 >> 2] = i8;
   34479           0 :  i8 = HEAP32[i3 >> 2] | 0;
   34480           0 :  i6 = i7;
   34481           0 :  i7 = i1 & 255;
   34482           0 :  i5 = i8 + 1 | 0;
   34483           0 :  HEAP32[i3 >> 2] = i5;
   34484           0 :  i8 = i6 + i8 | 0;
   34485           0 :  HEAP8[i8] = i7;
   34486           0 :  STACKTOP = i2;
   34487           0 :  return;
   34488           1 : }
   34489          15 : function _luaK_patchtohere(i1, i3) {
   34490          15 :  i1 = i1 | 0;
   34491          15 :  i3 = i3 | 0;
   34492          15 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
   34493          15 :  i2 = STACKTOP;
   34494          15 :  HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2];
   34495          15 :  i4 = i1 + 28 | 0;
   34496          15 :  if ((i3 | 0) == -1) {
   34497          15 :   STACKTOP = i2;
   34498          15 :   return;
   34499          15 :  }
   34500          15 :  i7 = HEAP32[i4 >> 2] | 0;
   34501          15 :  if ((i7 | 0) == -1) {
   34502          15 :   HEAP32[i4 >> 2] = i3;
   34503          15 :   STACKTOP = i2;
   34504          15 :   return;
   34505          15 :  }
   34506          15 :  i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
   34507          15 :  while (1) {
   34508          15 :   i6 = i4 + (i7 << 2) | 0;
   34509          15 :   i5 = HEAP32[i6 >> 2] | 0;
   34510          15 :   i8 = (i5 >>> 14) + -131071 | 0;
   34511          15 :   if ((i8 | 0) == -1) {
   34512          15 :    break;
   34513          15 :   }
   34514          15 :   i8 = i7 + 1 + i8 | 0;
   34515          15 :   if ((i8 | 0) == -1) {
   34516          15 :    break;
   34517          15 :   } else {
   34518          15 :    i7 = i8;
   34519          15 :   }
   34520          15 :  }
   34521          15 :  i3 = ~i7 + i3 | 0;
   34522          15 :  if ((((i3 | 0) > -1 ? i3 : 0 - i3 | 0) | 0) > 131071) {
   34523          15 :   _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
   34524          15 :  }
   34525          15 :  HEAP32[i6 >> 2] = (i3 << 14) + 2147467264 | i5 & 16383;
   34526          15 :  STACKTOP = i2;
   34527          15 :  return;
   34528          15 : }
   34529           1 : function _tinsert(i1) {
   34530           0 :  i1 = i1 | 0;
   34531           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   34532           0 :  i2 = STACKTOP;
   34533           0 :  STACKTOP = STACKTOP + 16 | 0;
   34534           0 :  i7 = i2;
   34535           0 :  _luaL_checktype(i1, 1, 5);
   34536           0 :  i4 = _luaL_len(i1, 1) | 0;
   34537           0 :  i3 = i4 + 1 | 0;
   34538           0 :  i6 = _lua_gettop(i1) | 0;
   34539           0 :  if ((i6 | 0) == 3) {
   34540           0 :   i5 = 2;
   34541           0 :  } else if ((i6 | 0) != 2) {
   34542           0 :   i7 = _luaL_error(i1, 8320, i7) | 0;
   34543           0 :   STACKTOP = i2;
   34544           0 :   return i7 | 0;
   34545           0 :  }
   34546           0 :  if ((i5 | 0) == 2) {
   34547           0 :   i5 = _luaL_checkinteger(i1, 2) | 0;
   34548           0 :   if ((i5 | 0) < 1 | (i5 | 0) > (i3 | 0)) {
   34549           0 :    _luaL_argerror(i1, 2, 8256) | 0;
   34550           0 :   }
   34551           0 :   if ((i4 | 0) < (i5 | 0)) {
   34552           0 :    i3 = i5;
   34553           0 :   } else {
   34554           0 :    while (1) {
   34555           0 :     i4 = i3 + -1 | 0;
   34556           0 :     _lua_rawgeti(i1, 1, i4);
   34557           0 :     _lua_rawseti(i1, 1, i3);
   34558           0 :     if ((i4 | 0) > (i5 | 0)) {
   34559           0 :      i3 = i4;
   34560           0 :     } else {
   34561           0 :      i3 = i5;
   34562           0 :      break;
   34563           0 :     }
   34564           0 :    }
   34565           0 :   }
   34566           0 :  }
   34567           0 :  _lua_rawseti(i1, 1, i3);
   34568           0 :  i7 = 0;
   34569           0 :  STACKTOP = i2;
   34570           0 :  return i7 | 0;
   34571           1 : }
   34572           1 : function _lua_iscfunction(i3, i5) {
   34573           0 :  i3 = i3 | 0;
   34574           0 :  i5 = i5 | 0;
   34575           0 :  var i1 = 0, i2 = 0, i4 = 0;
   34576           0 :  i1 = STACKTOP;
   34577           0 :  i4 = HEAP32[i3 + 16 >> 2] | 0;
   34578           0 :  do {
   34579           0 :   if ((i5 | 0) <= 0) {
   34580           0 :    if (!((i5 | 0) < -1000999)) {
   34581           0 :     i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
   34582           0 :     break;
   34583           0 :    }
   34584           0 :    if ((i5 | 0) == -1001e3) {
   34585           0 :     i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
   34586           0 :     break;
   34587           0 :    }
   34588           0 :    i3 = -1001e3 - i5 | 0;
   34589           0 :    i4 = HEAP32[i4 >> 2] | 0;
   34590           0 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
   34591           0 :     i2 = i2 + (i3 + -1 << 4) + 16 | 0;
   34592           0 :    } else {
   34593           0 :     i2 = 5192;
   34594           0 :    }
   34595           0 :   } else {
   34596           0 :    i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   34597           0 :    i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
   34598           0 :   }
   34599           0 :  } while (0);
   34600           0 :  i5 = HEAP32[i2 + 8 >> 2] | 0;
   34601           0 :  STACKTOP = i1;
   34602           0 :  return ((i5 | 0) == 22 | (i5 | 0) == 102) & 1 | 0;
   34603           1 : }
   34604           1 : function _lua_gettable(i1, i5) {
   34605           0 :  i1 = i1 | 0;
   34606           0 :  i5 = i5 | 0;
   34607           0 :  var i2 = 0, i3 = 0, i4 = 0;
   34608           0 :  i2 = STACKTOP;
   34609           0 :  i4 = HEAP32[i1 + 16 >> 2] | 0;
   34610           0 :  do {
   34611           0 :   if ((i5 | 0) <= 0) {
   34612           0 :    if (!((i5 | 0) < -1000999)) {
   34613           0 :     i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
   34614           0 :     break;
   34615           0 :    }
   34616           0 :    if ((i5 | 0) == -1001e3) {
   34617           0 :     i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
   34618           0 :     break;
   34619           0 :    }
   34620           0 :    i5 = -1001e3 - i5 | 0;
   34621           0 :    i4 = HEAP32[i4 >> 2] | 0;
   34622           0 :    if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
   34623           0 :     i3 = i3 + (i5 + -1 << 4) + 16 | 0;
   34624           0 :    } else {
   34625           0 :     i3 = 5192;
   34626           0 :    }
   34627           0 :   } else {
   34628           0 :    i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
   34629           0 :    i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
   34630           0 :   }
   34631           0 :  } while (0);
   34632           0 :  i5 = (HEAP32[i1 + 8 >> 2] | 0) + -16 | 0;
   34633           0 :  _luaV_gettable(i1, i3, i5, i5);
   34634           0 :  STACKTOP = i2;
   34635           0 :  return;
   34636           1 : }
   34637           1 : function _luaG_errormsg(i1) {
   34638           0 :  i1 = i1 | 0;
   34639           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
   34640           0 :  i2 = HEAP32[i1 + 68 >> 2] | 0;
   34641           0 :  if ((i2 | 0) == 0) {
   34642           0 :   _luaD_throw(i1, 2);
   34643           0 :  }
   34644           0 :  i4 = HEAP32[i1 + 28 >> 2] | 0;
   34645           0 :  i3 = i4 + (i2 + 8) | 0;
   34646           0 :  if ((HEAP32[i3 >> 2] & 15 | 0) != 6) {
   34647           0 :   _luaD_throw(i1, 6);
   34648           0 :  }
   34649           0 :  i5 = i1 + 8 | 0;
   34650           0 :  i6 = HEAP32[i5 >> 2] | 0;
   34651           0 :  i9 = i6 + -16 | 0;
   34652           0 :  i8 = HEAP32[i9 + 4 >> 2] | 0;
   34653           0 :  i7 = i6;
   34654           0 :  HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
   34655           0 :  HEAP32[i7 + 4 >> 2] = i8;
   34656           0 :  HEAP32[i6 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
   34657           0 :  i6 = HEAP32[i5 >> 2] | 0;
   34658           0 :  i7 = i4 + i2 | 0;
   34659           0 :  i2 = HEAP32[i7 + 4 >> 2] | 0;
   34660           0 :  i4 = i6 + -16 | 0;
   34661           0 :  HEAP32[i4 >> 2] = HEAP32[i7 >> 2];
   34662           0 :  HEAP32[i4 + 4 >> 2] = i2;
   34663           0 :  HEAP32[i6 + -8 >> 2] = HEAP32[i3 >> 2];
   34664           0 :  i4 = HEAP32[i5 >> 2] | 0;
   34665           0 :  HEAP32[i5 >> 2] = i4 + 16;
   34666           0 :  _luaD_call(i1, i4 + -16 | 0, 1, 0);
   34667           0 :  _luaD_throw(i1, 2);
   34668           1 : }
   34669           1 : function _luaB_costatus(i1) {
   34670           0 :  i1 = i1 | 0;
   34671           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   34672           0 :  i4 = STACKTOP;
   34673           0 :  STACKTOP = STACKTOP + 112 | 0;
   34674           0 :  i3 = i4;
   34675           0 :  i2 = _lua_tothread(i1, 1) | 0;
   34676           0 :  if ((i2 | 0) == 0) {
   34677           0 :   _luaL_argerror(i1, 1, 10856) | 0;
   34678           0 :  }
   34679           0 :  do {
   34680           0 :   if ((i2 | 0) != (i1 | 0)) {
   34681           0 :    i5 = _lua_status(i2) | 0;
   34682           0 :    if ((i5 | 0) == 0) {
   34683           0 :     if ((_lua_getstack(i2, 0, i3) | 0) > 0) {
   34684           0 :      _lua_pushlstring(i1, 10896, 6) | 0;
   34685           0 :      break;
   34686           0 :     }
   34687           0 :     if ((_lua_gettop(i2) | 0) == 0) {
   34688           0 :      _lua_pushlstring(i1, 10904, 4) | 0;
   34689           0 :      break;
   34690           0 :     } else {
   34691           0 :      _lua_pushlstring(i1, 10880, 9) | 0;
   34692           0 :      break;
   34693           0 :     }
   34694           0 :    } else if ((i5 | 0) == 1) {
   34695           0 :     _lua_pushlstring(i1, 10880, 9) | 0;
   34696           0 :     break;
   34697           0 :    } else {
   34698           0 :     _lua_pushlstring(i1, 10904, 4) | 0;
   34699           0 :     break;
   34700           0 :    }
   34701           0 :   } else {
   34702           0 :    _lua_pushlstring(i1, 10728, 7) | 0;
   34703           0 :   }
   34704           0 :  } while (0);
   34705           0 :  STACKTOP = i4;
   34706           0 :  return 1;
   34707           1 : }
   34708           1 : function _searcher_Lua(i1) {
   34709           0 :  i1 = i1 | 0;
   34710           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   34711           0 :  i2 = STACKTOP;
   34712           0 :  STACKTOP = STACKTOP + 16 | 0;
   34713           0 :  i3 = i2;
   34714           0 :  i4 = _luaL_checklstring(i1, 1, 0) | 0;
   34715           0 :  _lua_getfield(i1, -1001001, 4256);
   34716           0 :  i5 = _lua_tolstring(i1, -1, 0) | 0;
   34717           0 :  if ((i5 | 0) == 0) {
   34718           0 :   HEAP32[i3 >> 2] = 4256;
   34719           0 :   _luaL_error(i1, 5032, i3) | 0;
   34720           0 :  }
   34721           0 :  i4 = _searchpath(i1, i4, i5, 4936, 4848) | 0;
   34722           0 :  if ((i4 | 0) == 0) {
   34723           0 :   i5 = 1;
   34724           0 :   STACKTOP = i2;
   34725           0 :   return i5 | 0;
   34726           0 :  }
   34727           0 :  if ((_luaL_loadfilex(i1, i4, 0) | 0) == 0) {
   34728           0 :   _lua_pushstring(i1, i4) | 0;
   34729           0 :   i5 = 2;
   34730           0 :   STACKTOP = i2;
   34731           0 :   return i5 | 0;
   34732           0 :  } else {
   34733           0 :   i6 = _lua_tolstring(i1, 1, 0) | 0;
   34734           0 :   i5 = _lua_tolstring(i1, -1, 0) | 0;
   34735           0 :   HEAP32[i3 >> 2] = i6;
   34736           0 :   HEAP32[i3 + 4 >> 2] = i4;
   34737           0 :   HEAP32[i3 + 8 >> 2] = i5;
   34738           0 :   i5 = _luaL_error(i1, 4888, i3) | 0;
   34739           0 :   STACKTOP = i2;
   34740           0 :   return i5 | 0;
   34741           0 :  }
   34742           0 :  return 0;
   34743           1 : }
   34744           1 : function _str_sub(i1) {
   34745           0 :  i1 = i1 | 0;
   34746           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   34747           0 :  i3 = STACKTOP;
   34748           0 :  STACKTOP = STACKTOP + 16 | 0;
   34749           0 :  i4 = i3;
   34750           0 :  i2 = _luaL_checklstring(i1, 1, i4) | 0;
   34751           0 :  i5 = _luaL_checkinteger(i1, 2) | 0;
   34752           0 :  i6 = HEAP32[i4 >> 2] | 0;
   34753           0 :  if (!((i5 | 0) > -1)) {
   34754           0 :   if (i6 >>> 0 < (0 - i5 | 0) >>> 0) {
   34755           0 :    i5 = 0;
   34756           0 :   } else {
   34757           0 :    i5 = i5 + 1 + i6 | 0;
   34758           0 :   }
   34759           0 :  }
   34760           0 :  i6 = _luaL_optinteger(i1, 3, -1) | 0;
   34761           0 :  i4 = HEAP32[i4 >> 2] | 0;
   34762           0 :  if (!((i6 | 0) > -1)) {
   34763           0 :   if (i4 >>> 0 < (0 - i6 | 0) >>> 0) {
   34764           0 :    i6 = 0;
   34765           0 :   } else {
   34766           0 :    i6 = i6 + 1 + i4 | 0;
   34767           0 :   }
   34768           0 :  }
   34769           0 :  i5 = (i5 | 0) == 0 ? 1 : i5;
   34770           0 :  i4 = i6 >>> 0 > i4 >>> 0 ? i4 : i6;
   34771           0 :  if (i5 >>> 0 > i4 >>> 0) {
   34772           0 :   _lua_pushlstring(i1, 7040, 0) | 0;
   34773           0 :   STACKTOP = i3;
   34774           0 :   return 1;
   34775           0 :  } else {
   34776           0 :   _lua_pushlstring(i1, i2 + (i5 + -1) | 0, 1 - i5 + i4 | 0) | 0;
   34777           0 :   STACKTOP = i3;
   34778           0 :   return 1;
   34779           0 :  }
   34780           0 :  return 0;
   34781           1 : }
   34782           1 : function _searcher_C(i1) {
   34783           0 :  i1 = i1 | 0;
   34784           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   34785           0 :  i2 = STACKTOP;
   34786           0 :  STACKTOP = STACKTOP + 16 | 0;
   34787           0 :  i3 = i2;
   34788           0 :  i4 = _luaL_checklstring(i1, 1, 0) | 0;
   34789           0 :  _lua_getfield(i1, -1001001, 4440);
   34790           0 :  i5 = _lua_tolstring(i1, -1, 0) | 0;
   34791           0 :  if ((i5 | 0) == 0) {
   34792           0 :   HEAP32[i3 >> 2] = 4440;
   34793           0 :   _luaL_error(i1, 5032, i3) | 0;
   34794           0 :  }
   34795           0 :  i5 = _searchpath(i1, i4, i5, 4936, 4848) | 0;
   34796           0 :  if ((i5 | 0) == 0) {
   34797           0 :   i5 = 1;
   34798           0 :   STACKTOP = i2;
   34799           0 :   return i5 | 0;
   34800           0 :  }
   34801           0 :  if ((_loadfunc(i1, i5, i4) | 0) == 0) {
   34802           0 :   _lua_pushstring(i1, i5) | 0;
   34803           0 :   i5 = 2;
   34804           0 :   STACKTOP = i2;
   34805           0 :   return i5 | 0;
   34806           0 :  } else {
   34807           0 :   i6 = _lua_tolstring(i1, 1, 0) | 0;
   34808           0 :   i4 = _lua_tolstring(i1, -1, 0) | 0;
   34809           0 :   HEAP32[i3 >> 2] = i6;
   34810           0 :   HEAP32[i3 + 4 >> 2] = i5;
   34811           0 :   HEAP32[i3 + 8 >> 2] = i4;
   34812           0 :   i5 = _luaL_error(i1, 4888, i3) | 0;
   34813           0 :   STACKTOP = i2;
   34814           0 :   return i5 | 0;
   34815           0 :  }
   34816           0 :  return 0;
   34817           1 : }
   34818           1 : function _io_open(i1) {
   34819           0 :  i1 = i1 | 0;
   34820           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   34821           0 :  i5 = STACKTOP;
   34822           0 :  i2 = _luaL_checklstring(i1, 1, 0) | 0;
   34823           0 :  i3 = _luaL_optlstring(i1, 2, 3480, 0) | 0;
   34824           0 :  i4 = _lua_newuserdata(i1, 8) | 0;
   34825           0 :  i6 = i4 + 4 | 0;
   34826           0 :  HEAP32[i6 >> 2] = 0;
   34827           0 :  _luaL_setmetatable(i1, 2832);
   34828           0 :  HEAP32[i4 >> 2] = 0;
   34829           0 :  HEAP32[i6 >> 2] = 156;
   34830           0 :  i6 = HEAP8[i3] | 0;
   34831           0 :  if (!((!(i6 << 24 >> 24 == 0) ? (i7 = i3 + 1 | 0, (_memchr(3552, i6 << 24 >> 24, 4) | 0) != 0) : 0) ? (i6 = (HEAP8[i7] | 0) == 43 ? i3 + 2 | 0 : i7, (HEAP8[(HEAP8[i6] | 0) == 98 ? i6 + 1 | 0 : i6] | 0) == 0) : 0)) {
   34832           0 :   _luaL_argerror(i1, 2, 3560) | 0;
   34833           0 :  }
   34834           0 :  i7 = _fopen(i2 | 0, i3 | 0) | 0;
   34835           0 :  HEAP32[i4 >> 2] = i7;
   34836           0 :  if ((i7 | 0) != 0) {
   34837           0 :   i7 = 1;
   34838           0 :   STACKTOP = i5;
   34839           0 :   return i7 | 0;
   34840           0 :  }
   34841           0 :  i7 = _luaL_fileresult(i1, 0, i2) | 0;
   34842           0 :  STACKTOP = i5;
   34843           0 :  return i7 | 0;
   34844           1 : }
   34845           1 : function _unpack(i2) {
   34846           0 :  i2 = i2 | 0;
   34847           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   34848           0 :  i1 = STACKTOP;
   34849           0 :  STACKTOP = STACKTOP + 16 | 0;
   34850           0 :  i6 = i1;
   34851           0 :  _luaL_checktype(i2, 1, 5);
   34852           0 :  i5 = _luaL_optinteger(i2, 2, 1) | 0;
   34853           0 :  if ((_lua_type(i2, 3) | 0) < 1) {
   34854           0 :   i3 = _luaL_len(i2, 1) | 0;
   34855           0 :  } else {
   34856           0 :   i3 = _luaL_checkinteger(i2, 3) | 0;
   34857           0 :  }
   34858           0 :  if ((i5 | 0) > (i3 | 0)) {
   34859           0 :   i6 = 0;
   34860           0 :   STACKTOP = i1;
   34861           0 :   return i6 | 0;
   34862           0 :  }
   34863           0 :  i7 = i3 - i5 | 0;
   34864           0 :  i4 = i7 + 1 | 0;
   34865           0 :  if ((i7 | 0) >= 0 ? (_lua_checkstack(i2, i4) | 0) != 0 : 0) {
   34866           0 :   _lua_rawgeti(i2, 1, i5);
   34867           0 :   if ((i5 | 0) >= (i3 | 0)) {
   34868           0 :    i7 = i4;
   34869           0 :    STACKTOP = i1;
   34870           0 :    return i7 | 0;
   34871           0 :   }
   34872           0 :   do {
   34873           0 :    i5 = i5 + 1 | 0;
   34874           0 :    _lua_rawgeti(i2, 1, i5);
   34875           0 :   } while ((i5 | 0) != (i3 | 0));
   34876           0 :   STACKTOP = i1;
   34877           0 :   return i4 | 0;
   34878           0 :  }
   34879           0 :  i7 = _luaL_error(i2, 8280, i6) | 0;
   34880           0 :  STACKTOP = i1;
   34881           0 :  return i7 | 0;
   34882           1 : }
   34883           1 : function _luaF_getlocalname(i4, i6, i2) {
   34884           0 :  i4 = i4 | 0;
   34885           0 :  i6 = i6 | 0;
   34886           0 :  i2 = i2 | 0;
   34887           0 :  var i1 = 0, i3 = 0, i5 = 0;
   34888           0 :  i1 = STACKTOP;
   34889           0 :  i3 = HEAP32[i4 + 60 >> 2] | 0;
   34890           0 :  if ((i3 | 0) <= 0) {
   34891           0 :   i6 = 0;
   34892           0 :   STACKTOP = i1;
   34893           0 :   return i6 | 0;
   34894           0 :  }
   34895           0 :  i4 = HEAP32[i4 + 24 >> 2] | 0;
   34896           0 :  i5 = 0;
   34897           0 :  while (1) {
   34898           0 :   if ((HEAP32[i4 + (i5 * 12 | 0) + 4 >> 2] | 0) > (i2 | 0)) {
   34899           0 :    i3 = 0;
   34900           0 :    i2 = 8;
   34901           0 :    break;
   34902           0 :   }
   34903           0 :   if ((HEAP32[i4 + (i5 * 12 | 0) + 8 >> 2] | 0) > (i2 | 0)) {
   34904           0 :    i6 = i6 + -1 | 0;
   34905           0 :    if ((i6 | 0) == 0) {
   34906           0 :     i2 = 6;
   34907           0 :     break;
   34908           0 :    }
   34909           0 :   }
   34910           0 :   i5 = i5 + 1 | 0;
   34911           0 :   if ((i5 | 0) >= (i3 | 0)) {
   34912           0 :    i3 = 0;
   34913           0 :    i2 = 8;
   34914           0 :    break;
   34915           0 :   }
   34916           0 :  }
   34917           0 :  if ((i2 | 0) == 6) {
   34918           0 :   i6 = (HEAP32[i4 + (i5 * 12 | 0) >> 2] | 0) + 16 | 0;
   34919           0 :   STACKTOP = i1;
   34920           0 :   return i6 | 0;
   34921           0 :  } else if ((i2 | 0) == 8) {
   34922           0 :   STACKTOP = i1;
   34923           0 :   return i3 | 0;
   34924           0 :  }
   34925           0 :  return 0;
   34926           1 : }
   34927           7 : function _luaK_concat(i1, i4, i3) {
   34928           7 :  i1 = i1 | 0;
   34929           7 :  i4 = i4 | 0;
   34930           7 :  i3 = i3 | 0;
   34931           7 :  var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
   34932           7 :  i2 = STACKTOP;
   34933           7 :  if ((i3 | 0) == -1) {
   34934           7 :   STACKTOP = i2;
   34935           7 :   return;
   34936           7 :  }
   34937           7 :  i7 = HEAP32[i4 >> 2] | 0;
   34938           7 :  if ((i7 | 0) == -1) {
   34939           7 :   HEAP32[i4 >> 2] = i3;
   34940           7 :   STACKTOP = i2;
   34941           7 :   return;
   34942           7 :  }
   34943           7 :  i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
   34944           7 :  while (1) {
   34945           7 :   i6 = i4 + (i7 << 2) | 0;
   34946           7 :   i5 = HEAP32[i6 >> 2] | 0;
   34947           7 :   i8 = (i5 >>> 14) + -131071 | 0;
   34948           7 :   if ((i8 | 0) == -1) {
   34949           7 :    break;
   34950           7 :   }
   34951           7 :   i8 = i7 + 1 + i8 | 0;
   34952           7 :   if ((i8 | 0) == -1) {
   34953           7 :    break;
   34954           7 :   } else {
   34955           7 :    i7 = i8;
   34956           7 :   }
   34957           7 :  }
   34958           7 :  i3 = ~i7 + i3 | 0;
   34959           7 :  if ((((i3 | 0) > -1 ? i3 : 0 - i3 | 0) | 0) > 131071) {
   34960           7 :   _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
   34961           7 :  }
   34962           7 :  HEAP32[i6 >> 2] = i5 & 16383 | (i3 << 14) + 2147467264;
   34963           7 :  STACKTOP = i2;
   34964           7 :  return;
   34965           7 : }
   34966           5 : function _scalbn(d3, i2) {
   34967           5 :  d3 = +d3;
   34968           5 :  i2 = i2 | 0;
   34969           5 :  var i1 = 0, i4 = 0;
   34970           5 :  i1 = STACKTOP;
   34971           5 :  if ((i2 | 0) > 1023) {
   34972           5 :   d3 = d3 * 8.98846567431158e+307;
   34973           5 :   i4 = i2 + -1023 | 0;
   34974           5 :   if ((i4 | 0) > 1023) {
   34975           5 :    i2 = i2 + -2046 | 0;
   34976           5 :    i2 = (i2 | 0) > 1023 ? 1023 : i2;
   34977           5 :    d3 = d3 * 8.98846567431158e+307;
   34978           5 :   } else {
   34979           5 :    i2 = i4;
   34980           5 :   }
   34981           5 :  } else {
   34982           5 :   if ((i2 | 0) < -1022) {
   34983           5 :    d3 = d3 * 2.2250738585072014e-308;
   34984           5 :    i4 = i2 + 1022 | 0;
   34985           5 :    if ((i4 | 0) < -1022) {
   34986           5 :     i2 = i2 + 2044 | 0;
   34987           5 :     i2 = (i2 | 0) < -1022 ? -1022 : i2;
   34988           5 :     d3 = d3 * 2.2250738585072014e-308;
   34989           5 :    } else {
   34990           5 :     i2 = i4;
   34991           5 :    }
   34992           5 :   }
   34993           5 :  }
   34994           5 :  i2 = _bitshift64Shl(i2 + 1023 | 0, 0, 52) | 0;
   34995           5 :  i4 = tempRet0;
   34996           5 :  HEAP32[tempDoublePtr >> 2] = i2;
   34997           5 :  HEAP32[tempDoublePtr + 4 >> 2] = i4;
   34998           5 :  d3 = d3 * +HEAPF64[tempDoublePtr >> 3];
   34999           5 :  STACKTOP = i1;
   35000           5 :  return +d3;
   35001           5 : }
   35002           1 : function _luaK_numberK(i1, d6) {
   35003           1 :  i1 = i1 | 0;
   35004           1 :  d6 = +d6;
   35005           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
   35006           1 :  i2 = STACKTOP;
   35007           1 :  STACKTOP = STACKTOP + 32 | 0;
   35008           1 :  i4 = i2 + 16 | 0;
   35009           1 :  i3 = i2;
   35010           1 :  HEAPF64[i4 >> 3] = d6;
   35011           1 :  i5 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 52 >> 2] | 0;
   35012           1 :  HEAPF64[i3 >> 3] = d6;
   35013           1 :  HEAP32[i3 + 8 >> 2] = 3;
   35014           1 :  if (d6 != d6 | 0.0 != 0.0 | d6 == 0.0) {
   35015           1 :   i7 = i5 + 8 | 0;
   35016           1 :   i8 = HEAP32[i7 >> 2] | 0;
   35017           1 :   HEAP32[i7 >> 2] = i8 + 16;
   35018           1 :   i5 = _luaS_newlstr(i5, i4, 8) | 0;
   35019           1 :   HEAP32[i8 >> 2] = i5;
   35020           1 :   HEAP32[i8 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
   35021           1 :   i5 = _addk(i1, (HEAP32[i7 >> 2] | 0) + -16 | 0, i3) | 0;
   35022           1 :   HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16;
   35023           1 :   STACKTOP = i2;
   35024           1 :   return i5 | 0;
   35025           1 :  } else {
   35026           1 :   i8 = _addk(i1, i3, i3) | 0;
   35027           1 :   STACKTOP = i2;
   35028           1 :   return i8 | 0;
   35029           1 :  }
   35030           1 :  return 0;
   35031           1 : }
   35032           1 : function _auxresume(i2, i3, i4) {
   35033           0 :  i2 = i2 | 0;
   35034           0 :  i3 = i3 | 0;
   35035           0 :  i4 = i4 | 0;
   35036           0 :  var i1 = 0;
   35037           0 :  i1 = STACKTOP;
   35038           0 :  do {
   35039           0 :   if ((_lua_checkstack(i3, i4) | 0) != 0) {
   35040           0 :    if ((_lua_status(i3) | 0) == 0 ? (_lua_gettop(i3) | 0) == 0 : 0) {
   35041           0 :     _lua_pushlstring(i2, 10792, 28) | 0;
   35042           0 :     i4 = -1;
   35043           0 :     break;
   35044           0 :    }
   35045           0 :    _lua_xmove(i2, i3, i4);
   35046           0 :    if (!((_lua_resume(i3, i2, i4) | 0) >>> 0 < 2)) {
   35047           0 :     _lua_xmove(i3, i2, 1);
   35048           0 :     i4 = -1;
   35049           0 :     break;
   35050           0 :    }
   35051           0 :    i4 = _lua_gettop(i3) | 0;
   35052           0 :    if ((_lua_checkstack(i2, i4 + 1 | 0) | 0) == 0) {
   35053           0 :     _lua_settop(i3, ~i4);
   35054           0 :     _lua_pushlstring(i2, 10824, 26) | 0;
   35055           0 :     i4 = -1;
   35056           0 :     break;
   35057           0 :    } else {
   35058           0 :     _lua_xmove(i3, i2, i4);
   35059           0 :     break;
   35060           0 :    }
   35061           0 :   } else {
   35062           0 :    _lua_pushlstring(i2, 10760, 28) | 0;
   35063           0 :    i4 = -1;
   35064           0 :   }
   35065           0 :  } while (0);
   35066           0 :  STACKTOP = i1;
   35067           0 :  return i4 | 0;
   35068           1 : }
   35069           1 : function _luaX_setinput(i2, i1, i4, i3, i5) {
   35070           1 :  i2 = i2 | 0;
   35071           1 :  i1 = i1 | 0;
   35072           1 :  i4 = i4 | 0;
   35073           1 :  i3 = i3 | 0;
   35074           1 :  i5 = i5 | 0;
   35075           1 :  var i6 = 0, i7 = 0;
   35076           1 :  i6 = STACKTOP;
   35077           1 :  HEAP8[i1 + 76 | 0] = 46;
   35078           1 :  i7 = i1 + 52 | 0;
   35079           1 :  HEAP32[i7 >> 2] = i2;
   35080           1 :  HEAP32[i1 >> 2] = i5;
   35081           1 :  HEAP32[i1 + 32 >> 2] = 286;
   35082           1 :  HEAP32[i1 + 56 >> 2] = i4;
   35083           1 :  HEAP32[i1 + 48 >> 2] = 0;
   35084           1 :  HEAP32[i1 + 4 >> 2] = 1;
   35085           1 :  HEAP32[i1 + 8 >> 2] = 1;
   35086           1 :  HEAP32[i1 + 68 >> 2] = i3;
   35087           1 :  i5 = _luaS_new(i2, 12264) | 0;
   35088           1 :  HEAP32[i1 + 72 >> 2] = i5;
   35089           1 :  i5 = i5 + 5 | 0;
   35090           1 :  HEAP8[i5] = HEAPU8[i5] | 0 | 32;
   35091           1 :  i5 = i1 + 60 | 0;
   35092           1 :  i4 = HEAP32[i5 >> 2] | 0;
   35093           1 :  i4 = _luaM_realloc_(HEAP32[i7 >> 2] | 0, HEAP32[i4 >> 2] | 0, HEAP32[i4 + 8 >> 2] | 0, 32) | 0;
   35094           1 :  HEAP32[HEAP32[i5 >> 2] >> 2] = i4;
   35095           1 :  HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = 32;
   35096           1 :  STACKTOP = i6;
   35097           1 :  return;
   35098           1 : }
   35099           1 : function _luaL_optlstring(i2, i4, i6, i5) {
   35100           0 :  i2 = i2 | 0;
   35101           0 :  i4 = i4 | 0;
   35102           0 :  i6 = i6 | 0;
   35103           0 :  i5 = i5 | 0;
   35104           0 :  var i1 = 0, i3 = 0;
   35105           0 :  i1 = STACKTOP;
   35106           0 :  STACKTOP = STACKTOP + 16 | 0;
   35107           0 :  i3 = i1;
   35108           0 :  if ((_lua_type(i2, i4) | 0) >= 1) {
   35109           0 :   i5 = _lua_tolstring(i2, i4, i5) | 0;
   35110           0 :   if ((i5 | 0) != 0) {
   35111           0 :    i6 = i5;
   35112           0 :    STACKTOP = i1;
   35113           0 :    return i6 | 0;
   35114           0 :   }
   35115           0 :   i5 = _lua_typename(i2, 4) | 0;
   35116           0 :   i6 = _lua_typename(i2, _lua_type(i2, i4) | 0) | 0;
   35117           0 :   HEAP32[i3 >> 2] = i5;
   35118           0 :   HEAP32[i3 + 4 >> 2] = i6;
   35119           0 :   _luaL_argerror(i2, i4, _lua_pushfstring(i2, 1744, i3) | 0) | 0;
   35120           0 :   i6 = 0;
   35121           0 :   STACKTOP = i1;
   35122           0 :   return i6 | 0;
   35123           0 :  }
   35124           0 :  if ((i5 | 0) == 0) {
   35125           0 :   STACKTOP = i1;
   35126           0 :   return i6 | 0;
   35127           0 :  }
   35128           0 :  if ((i6 | 0) == 0) {
   35129           0 :   i2 = 0;
   35130           0 :  } else {
   35131           0 :   i2 = _strlen(i6 | 0) | 0;
   35132           0 :  }
   35133           0 :  HEAP32[i5 >> 2] = i2;
   35134           0 :  STACKTOP = i1;
   35135           0 :  return i6 | 0;
   35136           1 : }
   35137           1 : function _lua_xmove(i3, i4, i1) {
   35138           0 :  i3 = i3 | 0;
   35139           0 :  i4 = i4 | 0;
   35140           0 :  i1 = i1 | 0;
   35141           0 :  var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   35142           0 :  i2 = STACKTOP;
   35143           0 :  if ((i3 | 0) == (i4 | 0)) {
   35144           0 :   STACKTOP = i2;
   35145           0 :   return;
   35146           0 :  }
   35147           0 :  i3 = i3 + 8 | 0;
   35148           0 :  i5 = (HEAP32[i3 >> 2] | 0) + (0 - i1 << 4) | 0;
   35149           0 :  HEAP32[i3 >> 2] = i5;
   35150           0 :  if ((i1 | 0) <= 0) {
   35151           0 :   STACKTOP = i2;
   35152           0 :   return;
   35153           0 :  }
   35154           0 :  i4 = i4 + 8 | 0;
   35155           0 :  i6 = 0;
   35156           0 :  while (1) {
   35157           0 :   i7 = HEAP32[i4 >> 2] | 0;
   35158           0 :   HEAP32[i4 >> 2] = i7 + 16;
   35159           0 :   i10 = i5 + (i6 << 4) | 0;
   35160           0 :   i9 = HEAP32[i10 + 4 >> 2] | 0;
   35161           0 :   i8 = i7;
   35162           0 :   HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
   35163           0 :   HEAP32[i8 + 4 >> 2] = i9;
   35164           0 :   HEAP32[i7 + 8 >> 2] = HEAP32[i5 + (i6 << 4) + 8 >> 2];
   35165           0 :   i6 = i6 + 1 | 0;
   35166           0 :   if ((i6 | 0) == (i1 | 0)) {
   35167           0 :    break;
   35168           0 :   }
   35169           0 :   i5 = HEAP32[i3 >> 2] | 0;
   35170           0 :  }
   35171           0 :  STACKTOP = i2;
   35172           0 :  return;
   35173           1 : }
   35174      572872 : function _luaM_realloc_(i7, i10, i3, i2) {
   35175      572872 :  i7 = i7 | 0;
   35176      572872 :  i10 = i10 | 0;
   35177      572872 :  i3 = i3 | 0;
   35178      572872 :  i2 = i2 | 0;
   35179      572872 :  var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0;
   35180      572872 :  i5 = STACKTOP;
   35181      572872 :  i6 = HEAP32[i7 + 12 >> 2] | 0;
   35182      572872 :  i4 = (i10 | 0) != 0;
   35183      572872 :  i9 = i6 + 4 | 0;
   35184      572872 :  i8 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i9 >> 2] | 0, i10, i3, i2) | 0;
   35185      572872 :  if (!((i8 | 0) != 0 | (i2 | 0) == 0)) {
   35186      572872 :   if ((HEAP8[i6 + 63 | 0] | 0) == 0) {
   35187      572872 :    _luaD_throw(i7, 4);
   35188      572872 :   }
   35189      572872 :   _luaC_fullgc(i7, 1);
   35190      572872 :   i8 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i9 >> 2] | 0, i10, i3, i2) | 0;
   35191      572872 :   if ((i8 | 0) == 0) {
   35192      572872 :    _luaD_throw(i7, 4);
   35193      572872 :   } else {
   35194      572872 :    i1 = i8;
   35195      572872 :   }
   35196      572872 :  } else {
   35197      572872 :   i1 = i8;
   35198      572872 :  }
   35199      572872 :  i6 = i6 + 12 | 0;
   35200      572872 :  HEAP32[i6 >> 2] = (i4 ? 0 - i3 | 0 : 0) + i2 + (HEAP32[i6 >> 2] | 0);
   35201      572872 :  STACKTOP = i5;
   35202      572872 :  return i1 | 0;
   35203      572872 : }
   35204      286481 : function _realloc(i2, i3) {
   35205      286481 :  i2 = i2 | 0;
   35206      286481 :  i3 = i3 | 0;
   35207      286481 :  var i1 = 0, i4 = 0, i5 = 0;
   35208      286481 :  i1 = STACKTOP;
   35209      286481 :  do {
   35210      286481 :   if ((i2 | 0) != 0) {
   35211      286481 :    if (i3 >>> 0 > 4294967231) {
   35212      286481 :     HEAP32[(___errno_location() | 0) >> 2] = 12;
   35213      286481 :     i4 = 0;
   35214      286481 :     break;
   35215      286481 :    }
   35216      286481 :    if (i3 >>> 0 < 11) {
   35217      286481 :     i4 = 16;
   35218      286481 :    } else {
   35219      286481 :     i4 = i3 + 11 & -8;
   35220      286481 :    }
   35221      286481 :    i4 = _try_realloc_chunk(i2 + -8 | 0, i4) | 0;
   35222      286481 :    if ((i4 | 0) != 0) {
   35223      286481 :     i4 = i4 + 8 | 0;
   35224      286481 :     break;
   35225      286481 :    }
   35226      286481 :    i4 = _malloc(i3) | 0;
   35227      286481 :    if ((i4 | 0) == 0) {
   35228      286481 :     i4 = 0;
   35229      286481 :    } else {
   35230      286481 :     i5 = HEAP32[i2 + -4 >> 2] | 0;
   35231      286481 :     i5 = (i5 & -8) - ((i5 & 3 | 0) == 0 ? 8 : 4) | 0;
   35232      286481 :     _memcpy(i4 | 0, i2 | 0, (i5 >>> 0 < i3 >>> 0 ? i5 : i3) | 0) | 0;
   35233      286481 :     _free(i2);
   35234      286481 :    }
   35235      286481 :   } else {
   35236      286481 :    i4 = _malloc(i3) | 0;
   35237      286481 :   }
   35238      286481 :  } while (0);
   35239      286481 :  STACKTOP = i1;
   35240      286481 :  return i4 | 0;
   35241      286481 : }
   35242           1 : function _lua_setlocal(i3, i5, i4) {
   35243           0 :  i3 = i3 | 0;
   35244           0 :  i5 = i5 | 0;
   35245           0 :  i4 = i4 | 0;
   35246           0 :  var i1 = 0, i2 = 0, i6 = 0, i7 = 0, i8 = 0;
   35247           0 :  i1 = STACKTOP;
   35248           0 :  STACKTOP = STACKTOP + 16 | 0;
   35249           0 :  i2 = i1;
   35250           0 :  HEAP32[i2 >> 2] = 0;
   35251           0 :  i4 = _findlocal(i3, HEAP32[i5 + 96 >> 2] | 0, i4, i2) | 0;
   35252           0 :  i3 = i3 + 8 | 0;
   35253           0 :  if ((i4 | 0) == 0) {
   35254           0 :   i5 = HEAP32[i3 >> 2] | 0;
   35255           0 :   i5 = i5 + -16 | 0;
   35256           0 :   HEAP32[i3 >> 2] = i5;
   35257           0 :   STACKTOP = i1;
   35258           0 :   return i4 | 0;
   35259           0 :  }
   35260           0 :  i6 = HEAP32[i3 >> 2] | 0;
   35261           0 :  i5 = HEAP32[i2 >> 2] | 0;
   35262           0 :  i8 = i6 + -16 | 0;
   35263           0 :  i7 = HEAP32[i8 + 4 >> 2] | 0;
   35264           0 :  i2 = i5;
   35265           0 :  HEAP32[i2 >> 2] = HEAP32[i8 >> 2];
   35266           0 :  HEAP32[i2 + 4 >> 2] = i7;
   35267           0 :  HEAP32[i5 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
   35268           0 :  i5 = HEAP32[i3 >> 2] | 0;
   35269           0 :  i5 = i5 + -16 | 0;
   35270           0 :  HEAP32[i3 >> 2] = i5;
   35271           0 :  STACKTOP = i1;
   35272           0 :  return i4 | 0;
   35273           1 : }
   35274           1 : function ___remdi3(i1, i4, i5, i6) {
   35275           0 :  i1 = i1 | 0;
   35276           0 :  i4 = i4 | 0;
   35277           0 :  i5 = i5 | 0;
   35278           0 :  i6 = i6 | 0;
   35279           0 :  var i2 = 0, i3 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
   35280           0 :  i3 = STACKTOP;
   35281           0 :  STACKTOP = STACKTOP + 8 | 0;
   35282           0 :  i2 = i3 | 0;
   35283           0 :  i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
   35284           0 :  i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
   35285           0 :  i9 = i6 >> 31 | ((i6 | 0) < 0 ? -1 : 0) << 1;
   35286           0 :  i10 = ((i6 | 0) < 0 ? -1 : 0) >> 31 | ((i6 | 0) < 0 ? -1 : 0) << 1;
   35287           0 :  i1 = _i64Subtract(i7 ^ i1, i8 ^ i4, i7, i8) | 0;
   35288           0 :  i4 = tempRet0;
   35289           0 :  ___udivmoddi4(i1, i4, _i64Subtract(i9 ^ i5, i10 ^ i6, i9, i10) | 0, tempRet0, i2) | 0;
   35290           0 :  i9 = _i64Subtract(HEAP32[i2 >> 2] ^ i7, HEAP32[i2 + 4 >> 2] ^ i8, i7, i8) | 0;
   35291           0 :  i8 = tempRet0;
   35292           0 :  STACKTOP = i3;
   35293           0 :  return (tempRet0 = i8, i9) | 0;
   35294           1 : }
   35295           1 : function _luaC_barrierproto_(i3, i4, i2) {
   35296           0 :  i3 = i3 | 0;
   35297           0 :  i4 = i4 | 0;
   35298           0 :  i2 = i2 | 0;
   35299           0 :  var i1 = 0, i5 = 0;
   35300           0 :  i1 = STACKTOP;
   35301           0 :  if ((HEAP32[i4 + 32 >> 2] | 0) != 0) {
   35302           0 :   i5 = HEAP32[i3 + 12 >> 2] | 0;
   35303           0 :   i3 = i4 + 5 | 0;
   35304           0 :   HEAP8[i3] = HEAP8[i3] & 251;
   35305           0 :   i5 = i5 + 88 | 0;
   35306           0 :   HEAP32[i4 + 72 >> 2] = HEAP32[i5 >> 2];
   35307           0 :   HEAP32[i5 >> 2] = i4;
   35308           0 :   STACKTOP = i1;
   35309           0 :   return;
   35310           0 :  }
   35311           0 :  if ((HEAP8[i2 + 5 | 0] & 3) == 0) {
   35312           0 :   STACKTOP = i1;
   35313           0 :   return;
   35314           0 :  }
   35315           0 :  i5 = i4 + 5 | 0;
   35316           0 :  i4 = HEAP8[i5] | 0;
   35317           0 :  if ((i4 & 4) == 0) {
   35318           0 :   STACKTOP = i1;
   35319           0 :   return;
   35320           0 :  }
   35321           0 :  i3 = HEAP32[i3 + 12 >> 2] | 0;
   35322           0 :  if ((HEAPU8[i3 + 61 | 0] | 0) < 2) {
   35323           0 :   _reallymarkobject(i3, i2);
   35324           0 :   STACKTOP = i1;
   35325           0 :   return;
   35326           0 :  } else {
   35327           0 :   HEAP8[i5] = HEAP8[i3 + 60 | 0] & 3 | i4 & 184;
   35328           0 :   STACKTOP = i1;
   35329           0 :   return;
   35330           0 :  }
   35331           1 : }
   35332           1 : function _luaL_openlibs(i1) {
   35333           1 :  i1 = i1 | 0;
   35334           1 :  var i2 = 0;
   35335           1 :  i2 = STACKTOP;
   35336           1 :  _luaL_requiref(i1, 2592, 144, 1);
   35337           1 :  _lua_settop(i1, -2);
   35338           1 :  _luaL_requiref(i1, 2600, 145, 1);
   35339           1 :  _lua_settop(i1, -2);
   35340           1 :  _luaL_requiref(i1, 2608, 146, 1);
   35341           1 :  _lua_settop(i1, -2);
   35342           1 :  _luaL_requiref(i1, 2624, 147, 1);
   35343           1 :  _lua_settop(i1, -2);
   35344           1 :  _luaL_requiref(i1, 2632, 148, 1);
   35345           1 :  _lua_settop(i1, -2);
   35346           1 :  _luaL_requiref(i1, 2640, 149, 1);
   35347           1 :  _lua_settop(i1, -2);
   35348           1 :  _luaL_requiref(i1, 2648, 150, 1);
   35349           1 :  _lua_settop(i1, -2);
   35350           1 :  _luaL_requiref(i1, 2656, 151, 1);
   35351           1 :  _lua_settop(i1, -2);
   35352           1 :  _luaL_requiref(i1, 2664, 152, 1);
   35353           1 :  _lua_settop(i1, -2);
   35354           1 :  _luaL_requiref(i1, 2672, 153, 1);
   35355           1 :  _lua_settop(i1, -2);
   35356           1 :  _luaL_getsubtable(i1, -1001e3, 2576) | 0;
   35357           1 :  _lua_settop(i1, -2);
   35358           1 :  STACKTOP = i2;
   35359           1 :  return;
   35360           1 : }
   35361           1 : function _luaX_token2str(i4, i3) {
   35362           0 :  i4 = i4 | 0;
   35363           0 :  i3 = i3 | 0;
   35364           0 :  var i1 = 0, i2 = 0, i5 = 0;
   35365           0 :  i1 = STACKTOP;
   35366           0 :  STACKTOP = STACKTOP + 16 | 0;
   35367           0 :  i2 = i1;
   35368           0 :  if ((i3 | 0) >= 257) {
   35369           0 :   i5 = HEAP32[12096 + (i3 + -257 << 2) >> 2] | 0;
   35370           0 :   if ((i3 | 0) >= 286) {
   35371           0 :    STACKTOP = i1;
   35372           0 :    return i5 | 0;
   35373           0 :   }
   35374           0 :   i4 = HEAP32[i4 + 52 >> 2] | 0;
   35375           0 :   HEAP32[i2 >> 2] = i5;
   35376           0 :   i5 = _luaO_pushfstring(i4, 12256, i2) | 0;
   35377           0 :   STACKTOP = i1;
   35378           0 :   return i5 | 0;
   35379           0 :  }
   35380           0 :  i4 = HEAP32[i4 + 52 >> 2] | 0;
   35381           0 :  if ((HEAP8[i3 + 10913 | 0] & 4) == 0) {
   35382           0 :   HEAP32[i2 >> 2] = i3;
   35383           0 :   i5 = _luaO_pushfstring(i4, 12240, i2) | 0;
   35384           0 :   STACKTOP = i1;
   35385           0 :   return i5 | 0;
   35386           0 :  } else {
   35387           0 :   HEAP32[i2 >> 2] = i3;
   35388           0 :   i5 = _luaO_pushfstring(i4, 12232, i2) | 0;
   35389           0 :   STACKTOP = i1;
   35390           0 :   return i5 | 0;
   35391           0 :  }
   35392           0 :  return 0;
   35393           1 : }
   35394           1 : function _luaL_buffinitsize(i6, i1, i7) {
   35395           0 :  i6 = i6 | 0;
   35396           0 :  i1 = i1 | 0;
   35397           0 :  i7 = i7 | 0;
   35398           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0;
   35399           0 :  i2 = STACKTOP;
   35400           0 :  HEAP32[i1 + 12 >> 2] = i6;
   35401           0 :  i3 = i1 + 16 | 0;
   35402           0 :  HEAP32[i1 >> 2] = i3;
   35403           0 :  i5 = i1 + 8 | 0;
   35404           0 :  HEAP32[i5 >> 2] = 0;
   35405           0 :  i4 = i1 + 4 | 0;
   35406           0 :  HEAP32[i4 >> 2] = 1024;
   35407           0 :  if (!(i7 >>> 0 > 1024)) {
   35408           0 :   i7 = i3;
   35409           0 :   i8 = 0;
   35410           0 :   i8 = i7 + i8 | 0;
   35411           0 :   STACKTOP = i2;
   35412           0 :   return i8 | 0;
   35413           0 :  }
   35414           0 :  i8 = i7 >>> 0 > 2048 ? i7 : 2048;
   35415           0 :  i7 = _lua_newuserdata(i6, i8) | 0;
   35416           0 :  _memcpy(i7 | 0, HEAP32[i1 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
   35417           0 :  if ((HEAP32[i1 >> 2] | 0) != (i3 | 0)) {
   35418           0 :   _lua_remove(i6, -2);
   35419           0 :  }
   35420           0 :  HEAP32[i1 >> 2] = i7;
   35421           0 :  HEAP32[i4 >> 2] = i8;
   35422           0 :  i8 = HEAP32[i5 >> 2] | 0;
   35423           0 :  i8 = i7 + i8 | 0;
   35424           0 :  STACKTOP = i2;
   35425           0 :  return i8 | 0;
   35426           1 : }
   35427           1 : function _luaE_freethread(i1, i3) {
   35428           0 :  i1 = i1 | 0;
   35429           0 :  i3 = i3 | 0;
   35430           0 :  var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   35431           0 :  i2 = STACKTOP;
   35432           0 :  i4 = i3 + 28 | 0;
   35433           0 :  _luaF_close(i3, HEAP32[i4 >> 2] | 0);
   35434           0 :  i5 = HEAP32[i4 >> 2] | 0;
   35435           0 :  if ((i5 | 0) == 0) {
   35436           0 :   _luaM_realloc_(i1, i3, 112, 0) | 0;
   35437           0 :   STACKTOP = i2;
   35438           0 :   return;
   35439           0 :  }
   35440           0 :  HEAP32[i3 + 16 >> 2] = i3 + 72;
   35441           0 :  i7 = i3 + 84 | 0;
   35442           0 :  i6 = HEAP32[i7 >> 2] | 0;
   35443           0 :  HEAP32[i7 >> 2] = 0;
   35444           0 :  if ((i6 | 0) != 0) {
   35445           0 :   while (1) {
   35446           0 :    i5 = HEAP32[i6 + 12 >> 2] | 0;
   35447           0 :    _luaM_realloc_(i3, i6, 40, 0) | 0;
   35448           0 :    if ((i5 | 0) == 0) {
   35449           0 :     break;
   35450           0 :    } else {
   35451           0 :     i6 = i5;
   35452           0 :    }
   35453           0 :   }
   35454           0 :   i5 = HEAP32[i4 >> 2] | 0;
   35455           0 :  }
   35456           0 :  _luaM_realloc_(i3, i5, HEAP32[i3 + 32 >> 2] << 4, 0) | 0;
   35457           0 :  _luaM_realloc_(i1, i3, 112, 0) | 0;
   35458           0 :  STACKTOP = i2;
   35459           0 :  return;
   35460           1 : }
   35461           1 : function ___toread(i1) {
   35462           0 :  i1 = i1 | 0;
   35463           0 :  var i2 = 0, i3 = 0, i4 = 0;
   35464           0 :  i3 = STACKTOP;
   35465           0 :  i4 = i1 + 74 | 0;
   35466           0 :  i2 = HEAP8[i4] | 0;
   35467           0 :  HEAP8[i4] = i2 + 255 | i2;
   35468           0 :  i4 = i1 + 20 | 0;
   35469           0 :  i2 = i1 + 44 | 0;
   35470           0 :  if ((HEAP32[i4 >> 2] | 0) >>> 0 > (HEAP32[i2 >> 2] | 0) >>> 0) {
   35471           0 :   FUNCTION_TABLE_iiii[HEAP32[i1 + 36 >> 2] & 3](i1, 0, 0) | 0;
   35472           0 :  }
   35473           0 :  HEAP32[i1 + 16 >> 2] = 0;
   35474           0 :  HEAP32[i1 + 28 >> 2] = 0;
   35475           0 :  HEAP32[i4 >> 2] = 0;
   35476           0 :  i4 = HEAP32[i1 >> 2] | 0;
   35477           0 :  if ((i4 & 20 | 0) == 0) {
   35478           0 :   i4 = HEAP32[i2 >> 2] | 0;
   35479           0 :   HEAP32[i1 + 8 >> 2] = i4;
   35480           0 :   HEAP32[i1 + 4 >> 2] = i4;
   35481           0 :   i4 = 0;
   35482           0 :   STACKTOP = i3;
   35483           0 :   return i4 | 0;
   35484           0 :  }
   35485           0 :  if ((i4 & 4 | 0) == 0) {
   35486           0 :   i4 = -1;
   35487           0 :   STACKTOP = i3;
   35488           0 :   return i4 | 0;
   35489           0 :  }
   35490           0 :  HEAP32[i1 >> 2] = i4 | 32;
   35491           0 :  i4 = -1;
   35492           0 :  STACKTOP = i3;
   35493           0 :  return i4 | 0;
   35494           1 : }
   35495          10 : function _lua_callk(i3, i7, i4, i6, i5) {
   35496          10 :  i3 = i3 | 0;
   35497          10 :  i7 = i7 | 0;
   35498          10 :  i4 = i4 | 0;
   35499          10 :  i6 = i6 | 0;
   35500          10 :  i5 = i5 | 0;
   35501          10 :  var i1 = 0, i2 = 0, i8 = 0;
   35502          10 :  i1 = STACKTOP;
   35503          10 :  i2 = i3 + 8 | 0;
   35504          10 :  i7 = (HEAP32[i2 >> 2] | 0) + (~i7 << 4) | 0;
   35505          10 :  if ((i5 | 0) != 0 ? (HEAP16[i3 + 36 >> 1] | 0) == 0 : 0) {
   35506          10 :   i8 = i3 + 16 | 0;
   35507          10 :   HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2] = i5;
   35508          10 :   HEAP32[(HEAP32[i8 >> 2] | 0) + 24 >> 2] = i6;
   35509          10 :   _luaD_call(i3, i7, i4, 1);
   35510          10 :  } else {
   35511          10 :   _luaD_call(i3, i7, i4, 0);
   35512          10 :  }
   35513          10 :  if (!((i4 | 0) == -1)) {
   35514          10 :   STACKTOP = i1;
   35515          10 :   return;
   35516          10 :  }
   35517          10 :  i3 = (HEAP32[i3 + 16 >> 2] | 0) + 4 | 0;
   35518          10 :  i2 = HEAP32[i2 >> 2] | 0;
   35519          10 :  if (!((HEAP32[i3 >> 2] | 0) >>> 0 < i2 >>> 0)) {
   35520          10 :   STACKTOP = i1;
   35521          10 :   return;
   35522          10 :  }
   35523          10 :  HEAP32[i3 >> 2] = i2;
   35524          10 :  STACKTOP = i1;
   35525          10 :  return;
   35526          10 : }
   35527           6 : function _luaX_newstring(i3, i5, i4) {
   35528           6 :  i3 = i3 | 0;
   35529           6 :  i5 = i5 | 0;
   35530           6 :  i4 = i4 | 0;
   35531           6 :  var i1 = 0, i2 = 0, i6 = 0;
   35532           6 :  i1 = STACKTOP;
   35533           6 :  i2 = HEAP32[i3 + 52 >> 2] | 0;
   35534           6 :  i5 = _luaS_newlstr(i2, i5, i4) | 0;
   35535           6 :  i4 = i2 + 8 | 0;
   35536           6 :  i6 = HEAP32[i4 >> 2] | 0;
   35537           6 :  HEAP32[i4 >> 2] = i6 + 16;
   35538           6 :  HEAP32[i6 >> 2] = i5;
   35539           6 :  HEAP32[i6 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
   35540           6 :  i6 = _luaH_set(i2, HEAP32[(HEAP32[i3 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i4 >> 2] | 0) + -16 | 0) | 0;
   35541           6 :  i3 = i6 + 8 | 0;
   35542           6 :  if ((HEAP32[i3 >> 2] | 0) == 0 ? (HEAP32[i6 >> 2] = 1, HEAP32[i3 >> 2] = 1, (HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
   35543           6 :   _luaC_step(i2);
   35544           6 :  }
   35545           6 :  HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16;
   35546           6 :  STACKTOP = i1;
   35547           6 :  return i5 | 0;
   35548           6 : }
   35549          35 : function _strtod(i3, i2) {
   35550          35 :  i3 = i3 | 0;
   35551          35 :  i2 = i2 | 0;
   35552          35 :  var i1 = 0, i4 = 0, d5 = 0.0, i6 = 0, i7 = 0;
   35553          35 :  i1 = STACKTOP;
   35554          35 :  STACKTOP = STACKTOP + 112 | 0;
   35555          35 :  i4 = i1;
   35556          35 :  i7 = i4 + 0 | 0;
   35557          35 :  i6 = i7 + 112 | 0;
   35558          35 :  do {
   35559          35 :   HEAP32[i7 >> 2] = 0;
   35560          35 :   i7 = i7 + 4 | 0;
   35561          35 :  } while ((i7 | 0) < (i6 | 0));
   35562          35 :  i6 = i4 + 4 | 0;
   35563          35 :  HEAP32[i6 >> 2] = i3;
   35564          35 :  i7 = i4 + 8 | 0;
   35565          35 :  HEAP32[i7 >> 2] = -1;
   35566          35 :  HEAP32[i4 + 44 >> 2] = i3;
   35567          35 :  HEAP32[i4 + 76 >> 2] = -1;
   35568          35 :  ___shlim(i4, 0);
   35569          35 :  d5 = +___floatscan(i4, 1, 1);
   35570          35 :  i4 = (HEAP32[i6 >> 2] | 0) - (HEAP32[i7 >> 2] | 0) + (HEAP32[i4 + 108 >> 2] | 0) | 0;
   35571          35 :  if ((i2 | 0) == 0) {
   35572          35 :   STACKTOP = i1;
   35573          35 :   return +d5;
   35574          35 :  }
   35575          35 :  if ((i4 | 0) != 0) {
   35576          35 :   i3 = i3 + i4 | 0;
   35577          35 :  }
   35578          35 :  HEAP32[i2 >> 2] = i3;
   35579          35 :  STACKTOP = i1;
   35580          35 :  return +d5;
   35581          35 : }
   35582           1 : function _f_seek(i1) {
   35583           0 :  i1 = i1 | 0;
   35584           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, d6 = 0.0;
   35585           0 :  i2 = STACKTOP;
   35586           0 :  STACKTOP = STACKTOP + 16 | 0;
   35587           0 :  i3 = _luaL_checkudata(i1, 1, 2832) | 0;
   35588           0 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   35589           0 :   _luaL_error(i1, 3080, i2) | 0;
   35590           0 :  }
   35591           0 :  i3 = HEAP32[i3 >> 2] | 0;
   35592           0 :  i5 = _luaL_checkoption(i1, 2, 3208, 3184) | 0;
   35593           0 :  d6 = +_luaL_optnumber(i1, 3, 0.0);
   35594           0 :  i4 = ~~d6;
   35595           0 :  if (!(+(i4 | 0) == d6)) {
   35596           0 :   _luaL_argerror(i1, 3, 3224) | 0;
   35597           0 :  }
   35598           0 :  if ((_fseek(i3 | 0, i4 | 0, HEAP32[3168 + (i5 << 2) >> 2] | 0) | 0) == 0) {
   35599           0 :   _lua_pushnumber(i1, +(_ftell(i3 | 0) | 0));
   35600           0 :   i5 = 1;
   35601           0 :   STACKTOP = i2;
   35602           0 :   return i5 | 0;
   35603           0 :  } else {
   35604           0 :   i5 = _luaL_fileresult(i1, 0, 0) | 0;
   35605           0 :   STACKTOP = i2;
   35606           0 :   return i5 | 0;
   35607           0 :  }
   35608           0 :  return 0;
   35609           1 : }
   35610           2 : function _setpath(i1, i4, i8, i7, i3) {
   35611           2 :  i1 = i1 | 0;
   35612           2 :  i4 = i4 | 0;
   35613           2 :  i8 = i8 | 0;
   35614           2 :  i7 = i7 | 0;
   35615           2 :  i3 = i3 | 0;
   35616           2 :  var i2 = 0, i5 = 0, i6 = 0;
   35617           2 :  i2 = STACKTOP;
   35618           2 :  i8 = _getenv(i8 | 0) | 0;
   35619           2 :  if ((i8 | 0) == 0) {
   35620           2 :   i7 = _getenv(i7 | 0) | 0;
   35621           2 :   if ((i7 | 0) != 0) {
   35622           2 :    i5 = i7;
   35623           2 :    i6 = 3;
   35624           2 :   }
   35625           2 :  } else {
   35626           2 :   i5 = i8;
   35627           2 :   i6 = 3;
   35628           2 :  }
   35629           2 :  if ((i6 | 0) == 3 ? (_lua_getfield(i1, -1001e3, 4832), i8 = _lua_toboolean(i1, -1) | 0, _lua_settop(i1, -2), (i8 | 0) == 0) : 0) {
   35630           2 :   _luaL_gsub(i1, _luaL_gsub(i1, i5, 4808, 4816) | 0, 4824, i3) | 0;
   35631           2 :   _lua_remove(i1, -2);
   35632           2 :   _lua_setfield(i1, -2, i4);
   35633           2 :   STACKTOP = i2;
   35634           2 :   return;
   35635           2 :  }
   35636           2 :  _lua_pushstring(i1, i3) | 0;
   35637           2 :  _lua_setfield(i1, -2, i4);
   35638           2 :  STACKTOP = i2;
   35639           2 :  return;
   35640           2 : }
   35641           1 : function _luaU_header(i1) {
   35642           0 :  i1 = i1 | 0;
   35643           0 :  var i2 = 0, i3 = 0;
   35644           0 :  i2 = STACKTOP;
   35645           0 :  HEAP8[i1] = 1635077147;
   35646           0 :  HEAP8[i1 + 1 | 0] = 6387020;
   35647           0 :  HEAP8[i1 + 2 | 0] = 24949;
   35648           0 :  HEAP8[i1 + 3 | 0] = 97;
   35649           0 :  HEAP8[i1 + 4 | 0] = 82;
   35650           0 :  HEAP8[i1 + 5 | 0] = 0;
   35651           0 :  HEAP8[i1 + 6 | 0] = 1;
   35652           0 :  HEAP8[i1 + 7 | 0] = 4;
   35653           0 :  HEAP8[i1 + 8 | 0] = 4;
   35654           0 :  HEAP8[i1 + 9 | 0] = 4;
   35655           0 :  HEAP8[i1 + 10 | 0] = 8;
   35656           0 :  i3 = i1 + 12 | 0;
   35657           0 :  HEAP8[i1 + 11 | 0] = 0;
   35658           0 :  HEAP8[i3 + 0 | 0] = HEAP8[8816 | 0] | 0;
   35659           0 :  HEAP8[i3 + 1 | 0] = HEAP8[8817 | 0] | 0;
   35660           0 :  HEAP8[i3 + 2 | 0] = HEAP8[8818 | 0] | 0;
   35661           0 :  HEAP8[i3 + 3 | 0] = HEAP8[8819 | 0] | 0;
   35662           0 :  HEAP8[i3 + 4 | 0] = HEAP8[8820 | 0] | 0;
   35663           0 :  HEAP8[i3 + 5 | 0] = HEAP8[8821 | 0] | 0;
   35664           0 :  STACKTOP = i2;
   35665           0 :  return;
   35666           1 : }
   35667           1 : function _db_setlocal(i1) {
   35668           0 :  i1 = i1 | 0;
   35669           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   35670           0 :  i2 = STACKTOP;
   35671           0 :  STACKTOP = STACKTOP + 112 | 0;
   35672           0 :  i3 = i2;
   35673           0 :  if ((_lua_type(i1, 1) | 0) == 8) {
   35674           0 :   i5 = _lua_tothread(i1, 1) | 0;
   35675           0 :   i4 = 1;
   35676           0 :  } else {
   35677           0 :   i5 = i1;
   35678           0 :   i4 = 0;
   35679           0 :  }
   35680           0 :  i6 = i4 + 1 | 0;
   35681           0 :  if ((_lua_getstack(i5, _luaL_checkinteger(i1, i6) | 0, i3) | 0) == 0) {
   35682           0 :   i6 = _luaL_argerror(i1, i6, 11560) | 0;
   35683           0 :   STACKTOP = i2;
   35684           0 :   return i6 | 0;
   35685           0 :  } else {
   35686           0 :   i6 = i4 + 3 | 0;
   35687           0 :   _luaL_checkany(i1, i6);
   35688           0 :   _lua_settop(i1, i6);
   35689           0 :   _lua_xmove(i1, i5, 1);
   35690           0 :   _lua_pushstring(i1, _lua_setlocal(i5, i3, _luaL_checkinteger(i1, i4 | 2) | 0) | 0) | 0;
   35691           0 :   i6 = 1;
   35692           0 :   STACKTOP = i2;
   35693           0 :   return i6 | 0;
   35694           0 :  }
   35695           0 :  return 0;
   35696           1 : }
   35697           1 : function _tremove(i1) {
   35698           0 :  i1 = i1 | 0;
   35699           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   35700           0 :  i2 = STACKTOP;
   35701           0 :  _luaL_checktype(i1, 1, 5);
   35702           0 :  i3 = _luaL_len(i1, 1) | 0;
   35703           0 :  i4 = _luaL_optinteger(i1, 2, i3) | 0;
   35704           0 :  if ((i4 | 0) != (i3 | 0) ? (i4 | 0) < 1 | (i4 | 0) > (i3 + 1 | 0) : 0) {
   35705           0 :   _luaL_argerror(i1, 1, 8256) | 0;
   35706           0 :  }
   35707           0 :  _lua_rawgeti(i1, 1, i4);
   35708           0 :  if ((i4 | 0) >= (i3 | 0)) {
   35709           0 :   i5 = i4;
   35710           0 :   _lua_pushnil(i1);
   35711           0 :   _lua_rawseti(i1, 1, i5);
   35712           0 :   STACKTOP = i2;
   35713           0 :   return 1;
   35714           0 :  }
   35715           0 :  while (1) {
   35716           0 :   i5 = i4 + 1 | 0;
   35717           0 :   _lua_rawgeti(i1, 1, i5);
   35718           0 :   _lua_rawseti(i1, 1, i4);
   35719           0 :   if ((i5 | 0) == (i3 | 0)) {
   35720           0 :    break;
   35721           0 :   } else {
   35722           0 :    i4 = i5;
   35723           0 :   }
   35724           0 :  }
   35725           0 :  _lua_pushnil(i1);
   35726           0 :  _lua_rawseti(i1, 1, i3);
   35727           0 :  STACKTOP = i2;
   35728           0 :  return 1;
   35729           1 : }
   35730           9 : function _luaL_checkudata(i1, i7, i5) {
   35731           9 :  i1 = i1 | 0;
   35732           9 :  i7 = i7 | 0;
   35733           9 :  i5 = i5 | 0;
   35734           9 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
   35735           9 :  i2 = STACKTOP;
   35736           9 :  STACKTOP = STACKTOP + 16 | 0;
   35737           9 :  i4 = i2;
   35738           9 :  i3 = _lua_touserdata(i1, i7) | 0;
   35739           9 :  if (((i3 | 0) != 0 ? (_lua_getmetatable(i1, i7) | 0) != 0 : 0) ? (_lua_getfield(i1, -1001e3, i5), i6 = (_lua_rawequal(i1, -1, -2) | 0) == 0, i6 = i6 ? 0 : i3, _lua_settop(i1, -3), (i6 | 0) != 0) : 0) {
   35740           9 :   i7 = i6;
   35741           9 :   STACKTOP = i2;
   35742           9 :   return i7 | 0;
   35743           9 :  }
   35744           9 :  i6 = _lua_typename(i1, _lua_type(i1, i7) | 0) | 0;
   35745           9 :  HEAP32[i4 >> 2] = i5;
   35746           9 :  HEAP32[i4 + 4 >> 2] = i6;
   35747           9 :  _luaL_argerror(i1, i7, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
   35748           9 :  i7 = 0;
   35749           9 :  STACKTOP = i2;
   35750           9 :  return i7 | 0;
   35751           9 : }
   35752           1 : function _luaL_error(i1, i5, i7) {
   35753           0 :  i1 = i1 | 0;
   35754           0 :  i5 = i5 | 0;
   35755           0 :  i7 = i7 | 0;
   35756           0 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
   35757           0 :  i4 = STACKTOP;
   35758           0 :  STACKTOP = STACKTOP + 128 | 0;
   35759           0 :  i3 = i4;
   35760           0 :  i2 = i4 + 24 | 0;
   35761           0 :  i4 = i4 + 8 | 0;
   35762           0 :  HEAP32[i4 >> 2] = i7;
   35763           0 :  if ((_lua_getstack(i1, 1, i2) | 0) != 0 ? (_lua_getinfo(i1, 1152, i2) | 0, i6 = HEAP32[i2 + 20 >> 2] | 0, (i6 | 0) > 0) : 0) {
   35764           0 :   HEAP32[i3 >> 2] = i2 + 36;
   35765           0 :   HEAP32[i3 + 4 >> 2] = i6;
   35766           0 :   _lua_pushfstring(i1, 1160, i3) | 0;
   35767           0 :   _lua_pushvfstring(i1, i5, i4) | 0;
   35768           0 :   _lua_concat(i1, 2);
   35769           0 :   _lua_error(i1) | 0;
   35770           0 :  }
   35771           0 :  _lua_pushlstring(i1, 1168, 0) | 0;
   35772           0 :  _lua_pushvfstring(i1, i5, i4) | 0;
   35773           0 :  _lua_concat(i1, 2);
   35774           0 :  _lua_error(i1) | 0;
   35775           0 :  return 0;
   35776           1 : }
   35777          23 : function _luaK_infix(i1, i4, i3) {
   35778          23 :  i1 = i1 | 0;
   35779          23 :  i4 = i4 | 0;
   35780          23 :  i3 = i3 | 0;
   35781          23 :  var i2 = 0;
   35782          23 :  i2 = STACKTOP;
   35783          23 :  L1 : do {
   35784          23 :   switch (i4 | 0) {
   35785          23 :   case 6:
   35786          23 :    {
   35787          23 :     _luaK_exp2nextreg(i1, i3);
   35788          23 :     break;
   35789          23 :    }
   35790          23 :   case 5:
   35791          23 :   case 4:
   35792          23 :   case 3:
   35793          23 :   case 2:
   35794          23 :   case 1:
   35795          23 :   case 0:
   35796          23 :    {
   35797          23 :     if (((HEAP32[i3 >> 2] | 0) == 5 ? (HEAP32[i3 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i3 + 20 >> 2] | 0) == -1 : 0) {
   35798          23 :      break L1;
   35799          23 :     }
   35800          23 :     _luaK_exp2RK(i1, i3) | 0;
   35801          23 :     break;
   35802          23 :    }
   35803          23 :   case 13:
   35804          23 :    {
   35805          23 :     _luaK_goiftrue(i1, i3);
   35806          23 :     break;
   35807          23 :    }
   35808          23 :   case 14:
   35809          23 :    {
   35810          23 :     _luaK_goiffalse(i1, i3);
   35811          23 :     break;
   35812          23 :    }
   35813          23 :   default:
   35814          23 :    {
   35815          23 :     _luaK_exp2RK(i1, i3) | 0;
   35816          23 :    }
   35817          23 :   }
   35818          23 :  } while (0);
   35819          23 :  STACKTOP = i2;
   35820          23 :  return;
   35821          23 : }
   35822          22 : function _luaD_shrinkstack(i1) {
   35823          22 :  i1 = i1 | 0;
   35824          22 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   35825          22 :  i2 = STACKTOP;
   35826          22 :  i4 = HEAP32[i1 + 8 >> 2] | 0;
   35827          22 :  i3 = HEAP32[i1 + 16 >> 2] | 0;
   35828          22 :  if ((i3 | 0) != 0) {
   35829          22 :   do {
   35830          22 :    i5 = HEAP32[i3 + 4 >> 2] | 0;
   35831          22 :    i4 = i4 >>> 0 < i5 >>> 0 ? i5 : i4;
   35832          22 :    i3 = HEAP32[i3 + 8 >> 2] | 0;
   35833          22 :   } while ((i3 | 0) != 0);
   35834          22 :  }
   35835          22 :  i3 = i4 - (HEAP32[i1 + 28 >> 2] | 0) | 0;
   35836          22 :  i4 = (i3 >> 4) + 1 | 0;
   35837          22 :  i4 = ((i4 | 0) / 8 | 0) + 10 + i4 | 0;
   35838          22 :  i4 = (i4 | 0) > 1e6 ? 1e6 : i4;
   35839          22 :  if ((i3 | 0) > 15999984) {
   35840          22 :   STACKTOP = i2;
   35841          22 :   return;
   35842          22 :  }
   35843          22 :  if ((i4 | 0) >= (HEAP32[i1 + 32 >> 2] | 0)) {
   35844          22 :   STACKTOP = i2;
   35845          22 :   return;
   35846          22 :  }
   35847          22 :  _luaD_reallocstack(i1, i4);
   35848          22 :  STACKTOP = i2;
   35849          22 :  return;
   35850          22 : }
   35851           3 : function _luaF_newproto(i1) {
   35852           3 :  i1 = i1 | 0;
   35853           3 :  var i2 = 0;
   35854           3 :  i2 = STACKTOP;
   35855           3 :  i1 = _luaC_newobj(i1, 9, 80, 0, 0) | 0;
   35856           3 :  HEAP32[i1 + 8 >> 2] = 0;
   35857           3 :  HEAP32[i1 + 44 >> 2] = 0;
   35858           3 :  HEAP32[i1 + 16 >> 2] = 0;
   35859           3 :  HEAP32[i1 + 56 >> 2] = 0;
   35860           3 :  HEAP32[i1 + 12 >> 2] = 0;
   35861           3 :  HEAP32[i1 + 32 >> 2] = 0;
   35862           3 :  HEAP32[i1 + 48 >> 2] = 0;
   35863           3 :  HEAP32[i1 + 20 >> 2] = 0;
   35864           3 :  HEAP32[i1 + 52 >> 2] = 0;
   35865           3 :  HEAP32[i1 + 28 >> 2] = 0;
   35866           3 :  HEAP32[i1 + 40 >> 2] = 0;
   35867           3 :  HEAP8[i1 + 76 | 0] = 0;
   35868           3 :  HEAP8[i1 + 77 | 0] = 0;
   35869           3 :  HEAP8[i1 + 78 | 0] = 0;
   35870           3 :  HEAP32[i1 + 24 >> 2] = 0;
   35871           3 :  HEAP32[i1 + 60 >> 2] = 0;
   35872           3 :  HEAP32[i1 + 64 >> 2] = 0;
   35873           3 :  HEAP32[i1 + 68 >> 2] = 0;
   35874           3 :  HEAP32[i1 + 36 >> 2] = 0;
   35875           3 :  STACKTOP = i2;
   35876           3 :  return i1 | 0;
   35877           3 : }
   35878           3 : function _luaF_freeproto(i2, i1) {
   35879           3 :  i2 = i2 | 0;
   35880           3 :  i1 = i1 | 0;
   35881           3 :  var i3 = 0;
   35882           3 :  i3 = STACKTOP;
   35883           3 :  _luaM_realloc_(i2, HEAP32[i1 + 12 >> 2] | 0, HEAP32[i1 + 48 >> 2] << 2, 0) | 0;
   35884           3 :  _luaM_realloc_(i2, HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 56 >> 2] << 2, 0) | 0;
   35885           3 :  _luaM_realloc_(i2, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 44 >> 2] << 4, 0) | 0;
   35886           3 :  _luaM_realloc_(i2, HEAP32[i1 + 20 >> 2] | 0, HEAP32[i1 + 52 >> 2] << 2, 0) | 0;
   35887           3 :  _luaM_realloc_(i2, HEAP32[i1 + 24 >> 2] | 0, (HEAP32[i1 + 60 >> 2] | 0) * 12 | 0, 0) | 0;
   35888           3 :  _luaM_realloc_(i2, HEAP32[i1 + 28 >> 2] | 0, HEAP32[i1 + 40 >> 2] << 3, 0) | 0;
   35889           3 :  _luaM_realloc_(i2, i1, 80, 0) | 0;
   35890           3 :  STACKTOP = i3;
   35891           3 :  return;
   35892           3 : }
   35893           1 : function _luaK_patchclose(i3, i7, i4) {
   35894           0 :  i3 = i3 | 0;
   35895           0 :  i7 = i7 | 0;
   35896           0 :  i4 = i4 | 0;
   35897           0 :  var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i8 = 0;
   35898           0 :  i2 = STACKTOP;
   35899           0 :  if ((i7 | 0) == -1) {
   35900           0 :   STACKTOP = i2;
   35901           0 :   return;
   35902           0 :  }
   35903           0 :  i3 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
   35904           0 :  i4 = (i4 << 6) + 64 & 16320;
   35905           0 :  while (1) {
   35906           0 :   i6 = i3 + (i7 << 2) | 0;
   35907           0 :   i5 = HEAP32[i6 >> 2] | 0;
   35908           0 :   i8 = (i5 >>> 14) + -131071 | 0;
   35909           0 :   if ((i8 | 0) == -1) {
   35910           0 :    break;
   35911           0 :   }
   35912           0 :   i7 = i7 + 1 + i8 | 0;
   35913           0 :   HEAP32[i6 >> 2] = i5 & -16321 | i4;
   35914           0 :   if ((i7 | 0) == -1) {
   35915           0 :    i1 = 6;
   35916           0 :    break;
   35917           0 :   }
   35918           0 :  }
   35919           0 :  if ((i1 | 0) == 6) {
   35920           0 :   STACKTOP = i2;
   35921           0 :   return;
   35922           0 :  }
   35923           0 :  HEAP32[i6 >> 2] = i5 & -16321 | i4;
   35924           0 :  STACKTOP = i2;
   35925           0 :  return;
   35926           1 : }
   35927           1 : function _loadfunc(i1, i4, i5) {
   35928           0 :  i1 = i1 | 0;
   35929           0 :  i4 = i4 | 0;
   35930           0 :  i5 = i5 | 0;
   35931           0 :  var i2 = 0, i3 = 0, i6 = 0;
   35932           0 :  i2 = STACKTOP;
   35933           0 :  STACKTOP = STACKTOP + 16 | 0;
   35934           0 :  i3 = i2;
   35935           0 :  i6 = _luaL_gsub(i1, i5, 4936, 4944) | 0;
   35936           0 :  i5 = _strchr(i6, 45) | 0;
   35937           0 :  do {
   35938           0 :   if ((i5 | 0) != 0) {
   35939           0 :    HEAP32[i3 >> 2] = _lua_pushlstring(i1, i6, i5 - i6 | 0) | 0;
   35940           0 :    i6 = _ll_loadfunc(i1, i4, _lua_pushfstring(i1, 4952, i3) | 0) | 0;
   35941           0 :    if ((i6 | 0) == 2) {
   35942           0 :     i6 = i5 + 1 | 0;
   35943           0 :     break;
   35944           0 :    } else {
   35945           0 :     STACKTOP = i2;
   35946           0 :     return i6 | 0;
   35947           0 :    }
   35948           0 :   }
   35949           0 :  } while (0);
   35950           0 :  HEAP32[i3 >> 2] = i6;
   35951           0 :  i6 = _ll_loadfunc(i1, i4, _lua_pushfstring(i1, 4952, i3) | 0) | 0;
   35952           0 :  STACKTOP = i2;
   35953           0 :  return i6 | 0;
   35954           1 : }
   35955           2 : function _luaK_setlist(i1, i3, i4, i5) {
   35956           2 :  i1 = i1 | 0;
   35957           2 :  i3 = i3 | 0;
   35958           2 :  i4 = i4 | 0;
   35959           2 :  i5 = i5 | 0;
   35960           2 :  var i2 = 0;
   35961           2 :  i2 = STACKTOP;
   35962           2 :  i4 = ((i4 + -1 | 0) / 50 | 0) + 1 | 0;
   35963           2 :  i5 = (i5 | 0) == -1 ? 0 : i5;
   35964           2 :  if ((i4 | 0) < 512) {
   35965           2 :   _luaK_code(i1, i3 << 6 | i5 << 23 | i4 << 14 | 36) | 0;
   35966           2 :   i4 = i3 + 1 | 0;
   35967           2 :   i4 = i4 & 255;
   35968           2 :   i5 = i1 + 48 | 0;
   35969           2 :   HEAP8[i5] = i4;
   35970           2 :   STACKTOP = i2;
   35971           2 :   return;
   35972           2 :  }
   35973           2 :  if ((i4 | 0) >= 67108864) {
   35974           2 :   _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10576);
   35975           2 :  }
   35976           2 :  _luaK_code(i1, i3 << 6 | i5 << 23 | 36) | 0;
   35977           2 :  _luaK_code(i1, i4 << 6 | 39) | 0;
   35978           2 :  i4 = i3 + 1 | 0;
   35979           2 :  i4 = i4 & 255;
   35980           2 :  i5 = i1 + 48 | 0;
   35981           2 :  HEAP8[i5] = i4;
   35982           2 :  STACKTOP = i2;
   35983           2 :  return;
   35984           2 : }
   35985           1 : function _lua_getstack(i2, i6, i3) {
   35986           0 :  i2 = i2 | 0;
   35987           0 :  i6 = i6 | 0;
   35988           0 :  i3 = i3 | 0;
   35989           0 :  var i1 = 0, i4 = 0, i5 = 0;
   35990           0 :  i1 = STACKTOP;
   35991           0 :  L1 : do {
   35992           0 :   if ((i6 | 0) >= 0) {
   35993           0 :    i5 = HEAP32[i2 + 16 >> 2] | 0;
   35994           0 :    if ((i6 | 0) > 0) {
   35995           0 :     i4 = i2 + 72 | 0;
   35996           0 :     do {
   35997           0 :      if ((i5 | 0) == (i4 | 0)) {
   35998           0 :       i2 = 0;
   35999           0 :       break L1;
   36000           0 :      }
   36001           0 :      i6 = i6 + -1 | 0;
   36002           0 :      i5 = HEAP32[i5 + 8 >> 2] | 0;
   36003           0 :     } while ((i6 | 0) > 0);
   36004           0 :     if ((i6 | 0) != 0) {
   36005           0 :      i2 = 0;
   36006           0 :      break;
   36007           0 :     }
   36008           0 :    }
   36009           0 :    if ((i5 | 0) != (i2 + 72 | 0)) {
   36010           0 :     HEAP32[i3 + 96 >> 2] = i5;
   36011           0 :     i2 = 1;
   36012           0 :    } else {
   36013           0 :     i2 = 0;
   36014           0 :    }
   36015           0 :   } else {
   36016           0 :    i2 = 0;
   36017           0 :   }
   36018           0 :  } while (0);
   36019           0 :  STACKTOP = i1;
   36020           0 :  return i2 | 0;
   36021           1 : }
   36022           2 : function _luaC_checkupvalcolor(i1, i5) {
   36023           2 :  i1 = i1 | 0;
   36024           2 :  i5 = i5 | 0;
   36025           2 :  var i2 = 0, i3 = 0, i4 = 0;
   36026           2 :  i2 = STACKTOP;
   36027           2 :  i4 = i5 + 5 | 0;
   36028           2 :  i3 = HEAPU8[i4] | 0;
   36029           2 :  if ((i3 & 7 | 0) != 0) {
   36030           2 :   STACKTOP = i2;
   36031           2 :   return;
   36032           2 :  }
   36033           2 :  if ((HEAP8[i1 + 62 | 0] | 0) != 2 ? (HEAPU8[i1 + 61 | 0] | 0) >= 2 : 0) {
   36034           2 :   HEAP8[i4] = HEAP8[i1 + 60 | 0] & 3 | i3 & 184;
   36035           2 :   STACKTOP = i2;
   36036           2 :   return;
   36037           2 :  }
   36038           2 :  HEAP8[i4] = i3 & 187 | 4;
   36039           2 :  i3 = HEAP32[i5 + 8 >> 2] | 0;
   36040           2 :  if ((HEAP32[i3 + 8 >> 2] & 64 | 0) == 0) {
   36041           2 :   STACKTOP = i2;
   36042           2 :   return;
   36043           2 :  }
   36044           2 :  i3 = HEAP32[i3 >> 2] | 0;
   36045           2 :  if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
   36046           2 :   STACKTOP = i2;
   36047           2 :   return;
   36048           2 :  }
   36049           2 :  _reallymarkobject(i1, i3);
   36050           2 :  STACKTOP = i2;
   36051           2 :  return;
   36052           2 : }
   36053           1 : function _luaB_collectgarbage(i1) {
   36054           0 :  i1 = i1 | 0;
   36055           0 :  var i2 = 0, i3 = 0, i4 = 0;
   36056           0 :  i2 = STACKTOP;
   36057           0 :  i4 = HEAP32[10160 + ((_luaL_checkoption(i1, 1, 10040, 9976) | 0) << 2) >> 2] | 0;
   36058           0 :  i3 = _lua_gc(i1, i4, _luaL_optinteger(i1, 2, 0) | 0) | 0;
   36059           0 :  if ((i4 | 0) == 3) {
   36060           0 :   i4 = _lua_gc(i1, 4, 0) | 0;
   36061           0 :   _lua_pushnumber(i1, +(i3 | 0) + +(i4 | 0) * .0009765625);
   36062           0 :   _lua_pushinteger(i1, i4);
   36063           0 :   i4 = 2;
   36064           0 :   STACKTOP = i2;
   36065           0 :   return i4 | 0;
   36066           0 :  } else if ((i4 | 0) == 9 | (i4 | 0) == 5) {
   36067           0 :   _lua_pushboolean(i1, i3);
   36068           0 :   i4 = 1;
   36069           0 :   STACKTOP = i2;
   36070           0 :   return i4 | 0;
   36071           0 :  } else {
   36072           0 :   _lua_pushinteger(i1, i3);
   36073           0 :   i4 = 1;
   36074           0 :   STACKTOP = i2;
   36075           0 :   return i4 | 0;
   36076           0 :  }
   36077           0 :  return 0;
   36078           1 : }
   36079           1 : function _maxn(i1) {
   36080           0 :  i1 = i1 | 0;
   36081           0 :  var i2 = 0, d3 = 0.0, d4 = 0.0;
   36082           0 :  i2 = STACKTOP;
   36083           0 :  _luaL_checktype(i1, 1, 5);
   36084           0 :  _lua_pushnil(i1);
   36085           0 :  L1 : do {
   36086           0 :   if ((_lua_next(i1, 1) | 0) == 0) {
   36087           0 :    d3 = 0.0;
   36088           0 :   } else {
   36089           0 :    d4 = 0.0;
   36090           0 :    while (1) {
   36091           0 :     while (1) {
   36092           0 :      _lua_settop(i1, -2);
   36093           0 :      if ((_lua_type(i1, -1) | 0) == 3 ? (d3 = +_lua_tonumberx(i1, -1, 0), d3 > d4) : 0) {
   36094           0 :       break;
   36095           0 :      }
   36096           0 :      if ((_lua_next(i1, 1) | 0) == 0) {
   36097           0 :       d3 = d4;
   36098           0 :       break L1;
   36099           0 :      }
   36100           0 :     }
   36101           0 :     if ((_lua_next(i1, 1) | 0) == 0) {
   36102           0 :      break;
   36103           0 :     } else {
   36104           0 :      d4 = d3;
   36105           0 :     }
   36106           0 :    }
   36107           0 :   }
   36108           0 :  } while (0);
   36109           0 :  _lua_pushnumber(i1, d3);
   36110           0 :  STACKTOP = i2;
   36111           0 :  return 1;
   36112           1 : }
   36113           1 : function _str_char(i1) {
   36114           0 :  i1 = i1 | 0;
   36115           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
   36116           0 :  i2 = STACKTOP;
   36117           0 :  STACKTOP = STACKTOP + 1040 | 0;
   36118           0 :  i4 = i2;
   36119           0 :  i3 = _lua_gettop(i1) | 0;
   36120           0 :  i5 = _luaL_buffinitsize(i1, i4, i3) | 0;
   36121           0 :  if ((i3 | 0) < 1) {
   36122           0 :   _luaL_pushresultsize(i4, i3);
   36123           0 :   STACKTOP = i2;
   36124           0 :   return 1;
   36125           0 :  } else {
   36126           0 :   i6 = 1;
   36127           0 :  }
   36128           0 :  while (1) {
   36129           0 :   i7 = _luaL_checkinteger(i1, i6) | 0;
   36130           0 :   if ((i7 & 255 | 0) != (i7 | 0)) {
   36131           0 :    _luaL_argerror(i1, i6, 7920) | 0;
   36132           0 :   }
   36133           0 :   HEAP8[i5 + (i6 + -1) | 0] = i7;
   36134           0 :   if ((i6 | 0) == (i3 | 0)) {
   36135           0 :    break;
   36136           0 :   } else {
   36137           0 :    i6 = i6 + 1 | 0;
   36138           0 :   }
   36139           0 :  }
   36140           0 :  _luaL_pushresultsize(i4, i3);
   36141           0 :  STACKTOP = i2;
   36142           0 :  return 1;
   36143           1 : }
   36144         290 : function _memcpy(i3, i2, i1) {
   36145         290 :  i3 = i3 | 0;
   36146         290 :  i2 = i2 | 0;
   36147         290 :  i1 = i1 | 0;
   36148         290 :  var i4 = 0;
   36149         290 :  if ((i1 | 0) >= 4096) return _emscripten_memcpy_big(i3 | 0, i2 | 0, i1 | 0) | 0;
   36150         290 :  i4 = i3 | 0;
   36151         290 :  if ((i3 & 3) == (i2 & 3)) {
   36152         290 :   while (i3 & 3) {
   36153         290 :    if ((i1 | 0) == 0) return i4 | 0;
   36154         290 :    HEAP8[i3] = HEAP8[i2] | 0;
   36155         290 :    i3 = i3 + 1 | 0;
   36156         290 :    i2 = i2 + 1 | 0;
   36157         290 :    i1 = i1 - 1 | 0;
   36158         290 :   }
   36159         290 :   while ((i1 | 0) >= 4) {
   36160         290 :    HEAP32[i3 >> 2] = HEAP32[i2 >> 2];
   36161         290 :    i3 = i3 + 4 | 0;
   36162         290 :    i2 = i2 + 4 | 0;
   36163         290 :    i1 = i1 - 4 | 0;
   36164         290 :   }
   36165         290 :  }
   36166         290 :  while ((i1 | 0) > 0) {
   36167         290 :   HEAP8[i3] = HEAP8[i2] | 0;
   36168         290 :   i3 = i3 + 1 | 0;
   36169         290 :   i2 = i2 + 1 | 0;
   36170         290 :   i1 = i1 - 1 | 0;
   36171         290 :  }
   36172         290 :  return i4 | 0;
   36173         290 : }
   36174           6 : function _luaK_exp2val(i1, i5) {
   36175           6 :  i1 = i1 | 0;
   36176           6 :  i5 = i5 | 0;
   36177           6 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
   36178           6 :  i2 = STACKTOP;
   36179           6 :  i3 = i5 + 16 | 0;
   36180           6 :  i4 = i5 + 20 | 0;
   36181           6 :  if ((HEAP32[i3 >> 2] | 0) == (HEAP32[i4 >> 2] | 0)) {
   36182           6 :   _luaK_dischargevars(i1, i5);
   36183           6 :   STACKTOP = i2;
   36184           6 :   return;
   36185           6 :  }
   36186           6 :  _luaK_dischargevars(i1, i5);
   36187           6 :  if ((HEAP32[i5 >> 2] | 0) == 6) {
   36188           6 :   i6 = HEAP32[i5 + 8 >> 2] | 0;
   36189           6 :   if ((HEAP32[i3 >> 2] | 0) == (HEAP32[i4 >> 2] | 0)) {
   36190           6 :    STACKTOP = i2;
   36191           6 :    return;
   36192           6 :   }
   36193           6 :   if ((i6 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) {
   36194           6 :    _exp2reg(i1, i5, i6);
   36195           6 :    STACKTOP = i2;
   36196           6 :    return;
   36197           6 :   }
   36198           6 :  }
   36199           6 :  _luaK_exp2nextreg(i1, i5);
   36200           6 :  STACKTOP = i2;
   36201           6 :  return;
   36202           6 : }
   36203           1 : function _str_reverse(i5) {
   36204           0 :  i5 = i5 | 0;
   36205           0 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
   36206           0 :  i2 = STACKTOP;
   36207           0 :  STACKTOP = STACKTOP + 1056 | 0;
   36208           0 :  i4 = i2 + 1040 | 0;
   36209           0 :  i1 = i2;
   36210           0 :  i3 = _luaL_checklstring(i5, 1, i4) | 0;
   36211           0 :  i5 = _luaL_buffinitsize(i5, i1, HEAP32[i4 >> 2] | 0) | 0;
   36212           0 :  i6 = HEAP32[i4 >> 2] | 0;
   36213           0 :  if ((i6 | 0) == 0) {
   36214           0 :   i7 = 0;
   36215           0 :   _luaL_pushresultsize(i1, i7);
   36216           0 :   STACKTOP = i2;
   36217           0 :   return 1;
   36218           0 :  } else {
   36219           0 :   i7 = 0;
   36220           0 :  }
   36221           0 :  do {
   36222           0 :   HEAP8[i5 + i7 | 0] = HEAP8[i3 + (i6 + ~i7) | 0] | 0;
   36223           0 :   i7 = i7 + 1 | 0;
   36224           0 :   i6 = HEAP32[i4 >> 2] | 0;
   36225           0 :  } while (i7 >>> 0 < i6 >>> 0);
   36226           0 :  _luaL_pushresultsize(i1, i6);
   36227           0 :  STACKTOP = i2;
   36228           0 :  return 1;
   36229           1 : }
   36230           1 : function _str_upper(i5) {
   36231           0 :  i5 = i5 | 0;
   36232           0 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
   36233           0 :  i1 = STACKTOP;
   36234           0 :  STACKTOP = STACKTOP + 1056 | 0;
   36235           0 :  i4 = i1 + 1040 | 0;
   36236           0 :  i2 = i1;
   36237           0 :  i3 = _luaL_checklstring(i5, 1, i4) | 0;
   36238           0 :  i5 = _luaL_buffinitsize(i5, i2, HEAP32[i4 >> 2] | 0) | 0;
   36239           0 :  if ((HEAP32[i4 >> 2] | 0) == 0) {
   36240           0 :   i7 = 0;
   36241           0 :   _luaL_pushresultsize(i2, i7);
   36242           0 :   STACKTOP = i1;
   36243           0 :   return 1;
   36244           0 :  } else {
   36245           0 :   i6 = 0;
   36246           0 :  }
   36247           0 :  do {
   36248           0 :   HEAP8[i5 + i6 | 0] = _toupper(HEAPU8[i3 + i6 | 0] | 0 | 0) | 0;
   36249           0 :   i6 = i6 + 1 | 0;
   36250           0 :   i7 = HEAP32[i4 >> 2] | 0;
   36251           0 :  } while (i6 >>> 0 < i7 >>> 0);
   36252           0 :  _luaL_pushresultsize(i2, i7);
   36253           0 :  STACKTOP = i1;
   36254           0 :  return 1;
   36255           1 : }
   36256           1 : function _str_lower(i5) {
   36257           0 :  i5 = i5 | 0;
   36258           0 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
   36259           0 :  i1 = STACKTOP;
   36260           0 :  STACKTOP = STACKTOP + 1056 | 0;
   36261           0 :  i4 = i1 + 1040 | 0;
   36262           0 :  i2 = i1;
   36263           0 :  i3 = _luaL_checklstring(i5, 1, i4) | 0;
   36264           0 :  i5 = _luaL_buffinitsize(i5, i2, HEAP32[i4 >> 2] | 0) | 0;
   36265           0 :  if ((HEAP32[i4 >> 2] | 0) == 0) {
   36266           0 :   i7 = 0;
   36267           0 :   _luaL_pushresultsize(i2, i7);
   36268           0 :   STACKTOP = i1;
   36269           0 :   return 1;
   36270           0 :  } else {
   36271           0 :   i6 = 0;
   36272           0 :  }
   36273           0 :  do {
   36274           0 :   HEAP8[i5 + i6 | 0] = _tolower(HEAPU8[i3 + i6 | 0] | 0 | 0) | 0;
   36275           0 :   i6 = i6 + 1 | 0;
   36276           0 :   i7 = HEAP32[i4 >> 2] | 0;
   36277           0 :  } while (i6 >>> 0 < i7 >>> 0);
   36278           0 :  _luaL_pushresultsize(i2, i7);
   36279           0 :  STACKTOP = i1;
   36280           0 :  return 1;
   36281           1 : }
   36282           1 : function ___divdi3(i1, i2, i3, i4) {
   36283           0 :  i1 = i1 | 0;
   36284           0 :  i2 = i2 | 0;
   36285           0 :  i3 = i3 | 0;
   36286           0 :  i4 = i4 | 0;
   36287           0 :  var i5 = 0, i6 = 0, i7 = 0, i8 = 0;
   36288           0 :  i5 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
   36289           0 :  i6 = ((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
   36290           0 :  i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
   36291           0 :  i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
   36292           0 :  i1 = _i64Subtract(i5 ^ i1, i6 ^ i2, i5, i6) | 0;
   36293           0 :  i2 = tempRet0;
   36294           0 :  i5 = i7 ^ i5;
   36295           0 :  i6 = i8 ^ i6;
   36296           0 :  i7 = _i64Subtract((___udivmoddi4(i1, i2, _i64Subtract(i7 ^ i3, i8 ^ i4, i7, i8) | 0, tempRet0, 0) | 0) ^ i5, tempRet0 ^ i6, i5, i6) | 0;
   36297           0 :  return i7 | 0;
   36298           1 : }
   36299           9 : function _luaK_setoneret(i1, i4) {
   36300           9 :  i1 = i1 | 0;
   36301           9 :  i4 = i4 | 0;
   36302           9 :  var i2 = 0, i3 = 0;
   36303           9 :  i2 = STACKTOP;
   36304           9 :  i3 = HEAP32[i4 >> 2] | 0;
   36305           9 :  if ((i3 | 0) == 13) {
   36306           9 :   i3 = (HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 + 8 >> 2] << 2) | 0;
   36307           9 :   HEAP32[i3 >> 2] = HEAP32[i3 >> 2] & 8388607 | 16777216;
   36308           9 :   HEAP32[i4 >> 2] = 11;
   36309           9 :   STACKTOP = i2;
   36310           9 :   return;
   36311           9 :  } else if ((i3 | 0) == 12) {
   36312           9 :   HEAP32[i4 >> 2] = 6;
   36313           9 :   i4 = i4 + 8 | 0;
   36314           9 :   HEAP32[i4 >> 2] = (HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 >> 2] << 2) >> 2] | 0) >>> 6 & 255;
   36315           9 :   STACKTOP = i2;
   36316           9 :   return;
   36317           9 :  } else {
   36318           9 :   STACKTOP = i2;
   36319           9 :   return;
   36320           9 :  }
   36321           9 : }
   36322           1 : function _luaV_tostring(i6, i1) {
   36323           0 :  i6 = i6 | 0;
   36324           0 :  i1 = i1 | 0;
   36325           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   36326           0 :  i2 = STACKTOP;
   36327           0 :  STACKTOP = STACKTOP + 48 | 0;
   36328           0 :  i3 = i2;
   36329           0 :  i4 = i2 + 8 | 0;
   36330           0 :  i5 = i1 + 8 | 0;
   36331           0 :  if ((HEAP32[i5 >> 2] | 0) != 3) {
   36332           0 :   i6 = 0;
   36333           0 :   STACKTOP = i2;
   36334           0 :   return i6 | 0;
   36335           0 :  }
   36336           0 :  HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i1 >> 3];
   36337           0 :  HEAP32[i3 >> 2] = HEAP32[tempDoublePtr >> 2];
   36338           0 :  HEAP32[i3 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
   36339           0 :  i6 = _luaS_newlstr(i6, i4, _sprintf(i4 | 0, 8936, i3 | 0) | 0) | 0;
   36340           0 :  HEAP32[i1 >> 2] = i6;
   36341           0 :  HEAP32[i5 >> 2] = HEAPU8[i6 + 4 | 0] | 0 | 64;
   36342           0 :  i6 = 1;
   36343           0 :  STACKTOP = i2;
   36344           0 :  return i6 | 0;
   36345           1 : }
   36346           1 : function _strcmp(i4, i2) {
   36347           1 :  i4 = i4 | 0;
   36348           1 :  i2 = i2 | 0;
   36349           1 :  var i1 = 0, i3 = 0, i5 = 0;
   36350           1 :  i1 = STACKTOP;
   36351           1 :  i5 = HEAP8[i4] | 0;
   36352           1 :  i3 = HEAP8[i2] | 0;
   36353           1 :  if (i5 << 24 >> 24 != i3 << 24 >> 24 | i5 << 24 >> 24 == 0 | i3 << 24 >> 24 == 0) {
   36354           1 :   i4 = i5;
   36355           1 :   i5 = i3;
   36356           1 :   i4 = i4 & 255;
   36357           1 :   i5 = i5 & 255;
   36358           1 :   i5 = i4 - i5 | 0;
   36359           1 :   STACKTOP = i1;
   36360           1 :   return i5 | 0;
   36361           1 :  }
   36362           1 :  do {
   36363           1 :   i4 = i4 + 1 | 0;
   36364           1 :   i2 = i2 + 1 | 0;
   36365           1 :   i5 = HEAP8[i4] | 0;
   36366           1 :   i3 = HEAP8[i2] | 0;
   36367           1 :  } while (!(i5 << 24 >> 24 != i3 << 24 >> 24 | i5 << 24 >> 24 == 0 | i3 << 24 >> 24 == 0));
   36368           1 :  i4 = i5 & 255;
   36369           1 :  i5 = i3 & 255;
   36370           1 :  i5 = i4 - i5 | 0;
   36371           1 :  STACKTOP = i1;
   36372           1 :  return i5 | 0;
   36373           1 : }
   36374          16 : function _lua_pushstring(i1, i3) {
   36375          16 :  i1 = i1 | 0;
   36376          16 :  i3 = i3 | 0;
   36377          16 :  var i2 = 0, i4 = 0;
   36378          16 :  i2 = STACKTOP;
   36379          16 :  if ((i3 | 0) == 0) {
   36380          16 :   i3 = i1 + 8 | 0;
   36381          16 :   i1 = HEAP32[i3 >> 2] | 0;
   36382          16 :   HEAP32[i1 + 8 >> 2] = 0;
   36383          16 :   HEAP32[i3 >> 2] = i1 + 16;
   36384          16 :   i3 = 0;
   36385          16 :   STACKTOP = i2;
   36386          16 :   return i3 | 0;
   36387          16 :  }
   36388          16 :  if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   36389          16 :   _luaC_step(i1);
   36390          16 :  }
   36391          16 :  i3 = _luaS_new(i1, i3) | 0;
   36392          16 :  i1 = i1 + 8 | 0;
   36393          16 :  i4 = HEAP32[i1 >> 2] | 0;
   36394          16 :  HEAP32[i4 >> 2] = i3;
   36395          16 :  HEAP32[i4 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
   36396          16 :  HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 16;
   36397          16 :  i3 = i3 + 16 | 0;
   36398          16 :  STACKTOP = i2;
   36399          16 :  return i3 | 0;
   36400          16 : }
   36401           4 : function _luaK_exp2anyreg(i1, i3) {
   36402           4 :  i1 = i1 | 0;
   36403           4 :  i3 = i3 | 0;
   36404           4 :  var i2 = 0, i4 = 0, i5 = 0;
   36405           4 :  i2 = STACKTOP;
   36406           4 :  _luaK_dischargevars(i1, i3);
   36407           4 :  if ((HEAP32[i3 >> 2] | 0) == 6) {
   36408           4 :   i5 = i3 + 8 | 0;
   36409           4 :   i4 = HEAP32[i5 >> 2] | 0;
   36410           4 :   if ((HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0)) {
   36411           4 :    i5 = i4;
   36412           4 :    STACKTOP = i2;
   36413           4 :    return i5 | 0;
   36414           4 :   }
   36415           4 :   if ((i4 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) {
   36416           4 :    _exp2reg(i1, i3, i4);
   36417           4 :    i5 = HEAP32[i5 >> 2] | 0;
   36418           4 :    STACKTOP = i2;
   36419           4 :    return i5 | 0;
   36420           4 :   }
   36421           4 :  } else {
   36422           4 :   i5 = i3 + 8 | 0;
   36423           4 :  }
   36424           4 :  _luaK_exp2nextreg(i1, i3);
   36425           4 :  i5 = HEAP32[i5 >> 2] | 0;
   36426           4 :  STACKTOP = i2;
   36427           4 :  return i5 | 0;
   36428           4 : }
   36429          31 : function _check_match(i1, i4, i5, i6) {
   36430          31 :  i1 = i1 | 0;
   36431          31 :  i4 = i4 | 0;
   36432          31 :  i5 = i5 | 0;
   36433          31 :  i6 = i6 | 0;
   36434          31 :  var i2 = 0, i3 = 0;
   36435          31 :  i2 = STACKTOP;
   36436          31 :  STACKTOP = STACKTOP + 16 | 0;
   36437          31 :  i3 = i2;
   36438          31 :  if ((HEAP32[i1 + 16 >> 2] | 0) == (i4 | 0)) {
   36439          31 :   _luaX_next(i1);
   36440          31 :   STACKTOP = i2;
   36441          31 :   return;
   36442          31 :  }
   36443          31 :  if ((HEAP32[i1 + 4 >> 2] | 0) == (i6 | 0)) {
   36444          31 :   _error_expected(i1, i4);
   36445          31 :  } else {
   36446          31 :   i2 = HEAP32[i1 + 52 >> 2] | 0;
   36447          31 :   i4 = _luaX_token2str(i1, i4) | 0;
   36448          31 :   i5 = _luaX_token2str(i1, i5) | 0;
   36449          31 :   HEAP32[i3 >> 2] = i4;
   36450          31 :   HEAP32[i3 + 4 >> 2] = i5;
   36451          31 :   HEAP32[i3 + 8 >> 2] = i6;
   36452          31 :   _luaX_syntaxerror(i1, _luaO_pushfstring(i2, 6840, i3) | 0);
   36453          31 :  }
   36454          31 : }
   36455           6 : function _fieldsel(i1, i6) {
   36456           6 :  i1 = i1 | 0;
   36457           6 :  i6 = i6 | 0;
   36458           6 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0;
   36459           6 :  i2 = STACKTOP;
   36460           6 :  STACKTOP = STACKTOP + 32 | 0;
   36461           6 :  i3 = i2;
   36462           6 :  i5 = i1 + 48 | 0;
   36463           6 :  i4 = HEAP32[i5 >> 2] | 0;
   36464           6 :  _luaK_exp2anyregup(i4, i6);
   36465           6 :  _luaX_next(i1);
   36466           6 :  if ((HEAP32[i1 + 16 >> 2] | 0) == 288) {
   36467           6 :   i7 = HEAP32[i1 + 24 >> 2] | 0;
   36468           6 :   _luaX_next(i1);
   36469           6 :   i5 = _luaK_stringK(HEAP32[i5 >> 2] | 0, i7) | 0;
   36470           6 :   HEAP32[i3 + 16 >> 2] = -1;
   36471           6 :   HEAP32[i3 + 20 >> 2] = -1;
   36472           6 :   HEAP32[i3 >> 2] = 4;
   36473           6 :   HEAP32[i3 + 8 >> 2] = i5;
   36474           6 :   _luaK_indexed(i4, i6, i3);
   36475           6 :   STACKTOP = i2;
   36476           6 :   return;
   36477           6 :  } else {
   36478           6 :   _error_expected(i1, 288);
   36479           6 :  }
   36480           6 : }
   36481          12 : function _luaK_exp2anyregup(i1, i3) {
   36482          12 :  i1 = i1 | 0;
   36483          12 :  i3 = i3 | 0;
   36484          12 :  var i2 = 0, i4 = 0;
   36485          12 :  i2 = STACKTOP;
   36486          12 :  if ((HEAP32[i3 >> 2] | 0) == 8 ? (HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0) : 0) {
   36487          12 :   STACKTOP = i2;
   36488          12 :   return;
   36489          12 :  }
   36490          12 :  _luaK_dischargevars(i1, i3);
   36491          12 :  if ((HEAP32[i3 >> 2] | 0) == 6) {
   36492          12 :   i4 = HEAP32[i3 + 8 >> 2] | 0;
   36493          12 :   if ((HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0)) {
   36494          12 :    STACKTOP = i2;
   36495          12 :    return;
   36496          12 :   }
   36497          12 :   if ((i4 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) {
   36498          12 :    _exp2reg(i1, i3, i4);
   36499          12 :    STACKTOP = i2;
   36500          12 :    return;
   36501          12 :   }
   36502          12 :  }
   36503          12 :  _luaK_exp2nextreg(i1, i3);
   36504          12 :  STACKTOP = i2;
   36505          12 :  return;
   36506          12 : }
   36507          64 : function _lua_settop(i3, i5) {
   36508          64 :  i3 = i3 | 0;
   36509          64 :  i5 = i5 | 0;
   36510          64 :  var i1 = 0, i2 = 0, i4 = 0;
   36511          64 :  i1 = STACKTOP;
   36512          64 :  if (!((i5 | 0) > -1)) {
   36513          64 :   i4 = i3 + 8 | 0;
   36514          64 :   HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + (i5 + 1 << 4);
   36515          64 :   STACKTOP = i1;
   36516          64 :   return;
   36517          64 :  }
   36518          64 :  i2 = i3 + 8 | 0;
   36519          64 :  i4 = HEAP32[i2 >> 2] | 0;
   36520          64 :  i3 = (HEAP32[HEAP32[i3 + 16 >> 2] >> 2] | 0) + (i5 + 1 << 4) | 0;
   36521          64 :  if (i4 >>> 0 < i3 >>> 0) {
   36522          64 :   while (1) {
   36523          64 :    i5 = i4 + 16 | 0;
   36524          64 :    HEAP32[i4 + 8 >> 2] = 0;
   36525          64 :    if (i5 >>> 0 < i3 >>> 0) {
   36526          64 :     i4 = i5;
   36527          64 :    } else {
   36528          64 :     break;
   36529          64 :    }
   36530          64 :   }
   36531          64 :   HEAP32[i2 >> 2] = i5;
   36532          64 :  }
   36533          64 :  HEAP32[i2 >> 2] = i3;
   36534          64 :  STACKTOP = i1;
   36535          64 :  return;
   36536          64 : }
   36537           1 : function _luaL_fileresult(i1, i6, i5) {
   36538           0 :  i1 = i1 | 0;
   36539           0 :  i6 = i6 | 0;
   36540           0 :  i5 = i5 | 0;
   36541           0 :  var i2 = 0, i3 = 0, i4 = 0;
   36542           0 :  i2 = STACKTOP;
   36543           0 :  STACKTOP = STACKTOP + 16 | 0;
   36544           0 :  i4 = i2;
   36545           0 :  i3 = HEAP32[(___errno_location() | 0) >> 2] | 0;
   36546           0 :  if ((i6 | 0) != 0) {
   36547           0 :   _lua_pushboolean(i1, 1);
   36548           0 :   i6 = 1;
   36549           0 :   STACKTOP = i2;
   36550           0 :   return i6 | 0;
   36551           0 :  }
   36552           0 :  _lua_pushnil(i1);
   36553           0 :  i6 = _strerror(i3 | 0) | 0;
   36554           0 :  if ((i5 | 0) == 0) {
   36555           0 :   _lua_pushstring(i1, i6) | 0;
   36556           0 :  } else {
   36557           0 :   HEAP32[i4 >> 2] = i5;
   36558           0 :   HEAP32[i4 + 4 >> 2] = i6;
   36559           0 :   _lua_pushfstring(i1, 1176, i4) | 0;
   36560           0 :  }
   36561           0 :  _lua_pushinteger(i1, i3);
   36562           0 :  i6 = 3;
   36563           0 :  STACKTOP = i2;
   36564           0 :  return i6 | 0;
   36565           1 : }
   36566           1 : function _luaL_pushmodule(i1, i4, i5) {
   36567           0 :  i1 = i1 | 0;
   36568           0 :  i4 = i4 | 0;
   36569           0 :  i5 = i5 | 0;
   36570           0 :  var i2 = 0, i3 = 0;
   36571           0 :  i2 = STACKTOP;
   36572           0 :  STACKTOP = STACKTOP + 16 | 0;
   36573           0 :  i3 = i2;
   36574           0 :  _luaL_findtable(i1, -1001e3, 1432, 1) | 0;
   36575           0 :  _lua_getfield(i1, -1, i4);
   36576           0 :  if ((_lua_type(i1, -1) | 0) == 5) {
   36577           0 :   _lua_remove(i1, -2);
   36578           0 :   STACKTOP = i2;
   36579           0 :   return;
   36580           0 :  }
   36581           0 :  _lua_settop(i1, -2);
   36582           0 :  _lua_rawgeti(i1, -1001e3, 2);
   36583           0 :  if ((_luaL_findtable(i1, 0, i4, i5) | 0) != 0) {
   36584           0 :   HEAP32[i3 >> 2] = i4;
   36585           0 :   _luaL_error(i1, 1440, i3) | 0;
   36586           0 :  }
   36587           0 :  _lua_pushvalue(i1, -1);
   36588           0 :  _lua_setfield(i1, -3, i4);
   36589           0 :  _lua_remove(i1, -2);
   36590           0 :  STACKTOP = i2;
   36591           0 :  return;
   36592           1 : }
   36593           1 : function _b_replace(i1) {
   36594           0 :  i1 = i1 | 0;
   36595           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   36596           0 :  i6 = STACKTOP;
   36597           0 :  STACKTOP = STACKTOP + 16 | 0;
   36598           0 :  i3 = _luaL_checkunsigned(i1, 1) | 0;
   36599           0 :  i5 = _luaL_checkunsigned(i1, 2) | 0;
   36600           0 :  i4 = _luaL_checkinteger(i1, 3) | 0;
   36601           0 :  i2 = _luaL_optinteger(i1, 4, 1) | 0;
   36602           0 :  if (!((i4 | 0) > -1)) {
   36603           0 :   _luaL_argerror(i1, 3, 10440) | 0;
   36604           0 :  }
   36605           0 :  if ((i2 | 0) <= 0) {
   36606           0 :   _luaL_argerror(i1, 4, 10472) | 0;
   36607           0 :  }
   36608           0 :  if ((i2 + i4 | 0) > 32) {
   36609           0 :   _luaL_error(i1, 10496, i6) | 0;
   36610           0 :  }
   36611           0 :  i2 = ~(-2 << i2 + -1);
   36612           0 :  _lua_pushunsigned(i1, i3 & ~(i2 << i4) | (i5 & i2) << i4);
   36613           0 :  STACKTOP = i6;
   36614           0 :  return 1;
   36615           1 : }
   36616           4 : function _luaT_gettmbyobj(i1, i5, i3) {
   36617           4 :  i1 = i1 | 0;
   36618           4 :  i5 = i5 | 0;
   36619           4 :  i3 = i3 | 0;
   36620           4 :  var i2 = 0, i4 = 0;
   36621           4 :  i2 = STACKTOP;
   36622           4 :  i4 = HEAP32[i5 + 8 >> 2] & 15;
   36623           4 :  if ((i4 | 0) == 5) {
   36624           4 :   i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] | 0;
   36625           4 :  } else if ((i4 | 0) == 7) {
   36626           4 :   i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] | 0;
   36627           4 :  } else {
   36628           4 :   i4 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i4 << 2) + 252 >> 2] | 0;
   36629           4 :  }
   36630           4 :  if ((i4 | 0) == 0) {
   36631           4 :   i5 = 5192;
   36632           4 :   STACKTOP = i2;
   36633           4 :   return i5 | 0;
   36634           4 :  }
   36635           4 :  i5 = _luaH_getstr(i4, HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i3 << 2) + 184 >> 2] | 0) | 0;
   36636           4 :  STACKTOP = i2;
   36637           4 :  return i5 | 0;
   36638           4 : }
   36639         337 : function _luaS_eqstr(i2, i3) {
   36640         337 :  i2 = i2 | 0;
   36641         337 :  i3 = i3 | 0;
   36642         337 :  var i1 = 0, i4 = 0;
   36643         337 :  i1 = STACKTOP;
   36644         337 :  i4 = HEAP8[i2 + 4 | 0] | 0;
   36645         337 :  do {
   36646         337 :   if (i4 << 24 >> 24 == (HEAP8[i3 + 4 | 0] | 0)) {
   36647         337 :    if (i4 << 24 >> 24 == 4) {
   36648         337 :     i2 = (i2 | 0) == (i3 | 0);
   36649         337 :     break;
   36650         337 :    }
   36651         337 :    i4 = HEAP32[i2 + 12 >> 2] | 0;
   36652         337 :    if ((i2 | 0) != (i3 | 0)) {
   36653         337 :     if ((i4 | 0) == (HEAP32[i3 + 12 >> 2] | 0)) {
   36654         337 :      i2 = (_memcmp(i2 + 16 | 0, i3 + 16 | 0, i4) | 0) == 0;
   36655         337 :     } else {
   36656         337 :      i2 = 0;
   36657         337 :     }
   36658         337 :    } else {
   36659         337 :     i2 = 1;
   36660         337 :    }
   36661         337 :   } else {
   36662         337 :    i2 = 0;
   36663         337 :   }
   36664         337 :  } while (0);
   36665         337 :  STACKTOP = i1;
   36666         337 :  return i2 & 1 | 0;
   36667         337 : }
   36668           1 : function _lua_concat(i1, i3) {
   36669           0 :  i1 = i1 | 0;
   36670           0 :  i3 = i3 | 0;
   36671           0 :  var i2 = 0, i4 = 0;
   36672           0 :  i2 = STACKTOP;
   36673           0 :  if ((i3 | 0) > 1) {
   36674           0 :   if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   36675           0 :    _luaC_step(i1);
   36676           0 :   }
   36677           0 :   _luaV_concat(i1, i3);
   36678           0 :   STACKTOP = i2;
   36679           0 :   return;
   36680           0 :  } else {
   36681           0 :   if ((i3 | 0) != 0) {
   36682           0 :    STACKTOP = i2;
   36683           0 :    return;
   36684           0 :   }
   36685           0 :   i3 = i1 + 8 | 0;
   36686           0 :   i4 = HEAP32[i3 >> 2] | 0;
   36687           0 :   i1 = _luaS_newlstr(i1, 936, 0) | 0;
   36688           0 :   HEAP32[i4 >> 2] = i1;
   36689           0 :   HEAP32[i4 + 8 >> 2] = HEAPU8[i1 + 4 | 0] | 0 | 64;
   36690           0 :   HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 16;
   36691           0 :   STACKTOP = i2;
   36692           0 :   return;
   36693           0 :  }
   36694           1 : }
   36695           1 : function _ll_loadfunc(i1, i4, i3) {
   36696           0 :  i1 = i1 | 0;
   36697           0 :  i4 = i4 | 0;
   36698           0 :  i3 = i3 | 0;
   36699           0 :  var i2 = 0;
   36700           0 :  i2 = STACKTOP;
   36701           0 :  _lua_getfield(i1, -1001e3, 4184);
   36702           0 :  _lua_getfield(i1, -1, i4);
   36703           0 :  i4 = _lua_touserdata(i1, -1) | 0;
   36704           0 :  _lua_settop(i1, -3);
   36705           0 :  if ((i4 | 0) == 0) {
   36706           0 :   _lua_pushlstring(i1, 4968, 58) | 0;
   36707           0 :   i4 = 1;
   36708           0 :   STACKTOP = i2;
   36709           0 :   return i4 | 0;
   36710           0 :  }
   36711           0 :  if ((HEAP8[i3] | 0) == 42) {
   36712           0 :   _lua_pushboolean(i1, 1);
   36713           0 :   i4 = 0;
   36714           0 :   STACKTOP = i2;
   36715           0 :   return i4 | 0;
   36716           0 :  } else {
   36717           0 :   _lua_pushlstring(i1, 4968, 58) | 0;
   36718           0 :   i4 = 2;
   36719           0 :   STACKTOP = i2;
   36720           0 :   return i4 | 0;
   36721           0 :  }
   36722           0 :  return 0;
   36723           1 : }
   36724           1 : function _memset(i1, i4, i3) {
   36725           0 :  i1 = i1 | 0;
   36726           0 :  i4 = i4 | 0;
   36727           0 :  i3 = i3 | 0;
   36728           0 :  var i2 = 0, i5 = 0, i6 = 0, i7 = 0;
   36729           0 :  i2 = i1 + i3 | 0;
   36730           0 :  if ((i3 | 0) >= 20) {
   36731           0 :   i4 = i4 & 255;
   36732           0 :   i7 = i1 & 3;
   36733           0 :   i6 = i4 | i4 << 8 | i4 << 16 | i4 << 24;
   36734           0 :   i5 = i2 & ~3;
   36735           0 :   if (i7) {
   36736           0 :    i7 = i1 + 4 - i7 | 0;
   36737           0 :    while ((i1 | 0) < (i7 | 0)) {
   36738           0 :     HEAP8[i1] = i4;
   36739           0 :     i1 = i1 + 1 | 0;
   36740           0 :    }
   36741           0 :   }
   36742           0 :   while ((i1 | 0) < (i5 | 0)) {
   36743           0 :    HEAP32[i1 >> 2] = i6;
   36744           0 :    i1 = i1 + 4 | 0;
   36745           0 :   }
   36746           0 :  }
   36747           0 :  while ((i1 | 0) < (i2 | 0)) {
   36748           0 :   HEAP8[i1] = i4;
   36749           0 :   i1 = i1 + 1 | 0;
   36750           0 :  }
   36751           0 :  return i1 - i3 | 0;
   36752           1 : }
   36753           1 : function _luaD_growstack(i1, i3) {
   36754           0 :  i1 = i1 | 0;
   36755           0 :  i3 = i3 | 0;
   36756           0 :  var i2 = 0, i4 = 0;
   36757           0 :  i2 = STACKTOP;
   36758           0 :  STACKTOP = STACKTOP + 16 | 0;
   36759           0 :  i4 = HEAP32[i1 + 32 >> 2] | 0;
   36760           0 :  if ((i4 | 0) > 1e6) {
   36761           0 :   _luaD_throw(i1, 6);
   36762           0 :  }
   36763           0 :  i3 = i3 + 5 + ((HEAP32[i1 + 8 >> 2] | 0) - (HEAP32[i1 + 28 >> 2] | 0) >> 4) | 0;
   36764           0 :  i4 = i4 << 1;
   36765           0 :  i4 = (i4 | 0) > 1e6 ? 1e6 : i4;
   36766           0 :  i3 = (i4 | 0) < (i3 | 0) ? i3 : i4;
   36767           0 :  if ((i3 | 0) > 1e6) {
   36768           0 :   _luaD_reallocstack(i1, 1000200);
   36769           0 :   _luaG_runerror(i1, 2224, i2);
   36770           0 :  } else {
   36771           0 :   _luaD_reallocstack(i1, i3);
   36772           0 :   STACKTOP = i2;
   36773           0 :   return;
   36774           0 :  }
   36775           1 : }
   36776           1 : function _luaL_callmeta(i1, i4, i3) {
   36777           0 :  i1 = i1 | 0;
   36778           0 :  i4 = i4 | 0;
   36779           0 :  i3 = i3 | 0;
   36780           0 :  var i2 = 0;
   36781           0 :  i2 = STACKTOP;
   36782           0 :  i4 = _lua_absindex(i1, i4) | 0;
   36783           0 :  if ((_lua_getmetatable(i1, i4) | 0) == 0) {
   36784           0 :   i4 = 0;
   36785           0 :   STACKTOP = i2;
   36786           0 :   return i4 | 0;
   36787           0 :  }
   36788           0 :  _lua_pushstring(i1, i3) | 0;
   36789           0 :  _lua_rawget(i1, -2);
   36790           0 :  if ((_lua_type(i1, -1) | 0) == 0) {
   36791           0 :   _lua_settop(i1, -3);
   36792           0 :   i4 = 0;
   36793           0 :   STACKTOP = i2;
   36794           0 :   return i4 | 0;
   36795           0 :  } else {
   36796           0 :   _lua_remove(i1, -2);
   36797           0 :   _lua_pushvalue(i1, i4);
   36798           0 :   _lua_callk(i1, 1, 1, 0, 0);
   36799           0 :   i4 = 1;
   36800           0 :   STACKTOP = i2;
   36801           0 :   return i4 | 0;
   36802           0 :  }
   36803           0 :  return 0;
   36804           1 : }
   36805           5 : function _luaK_reserveregs(i8, i7) {
   36806           5 :  i8 = i8 | 0;
   36807           5 :  i7 = i7 | 0;
   36808           5 :  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   36809           5 :  i3 = STACKTOP;
   36810           5 :  i2 = i8 + 48 | 0;
   36811           5 :  i6 = HEAP8[i2] | 0;
   36812           5 :  i4 = (i6 & 255) + i7 | 0;
   36813           5 :  i5 = (HEAP32[i8 >> 2] | 0) + 78 | 0;
   36814           5 :  do {
   36815           5 :   if ((i4 | 0) > (HEAPU8[i5] | 0 | 0)) {
   36816           5 :    if ((i4 | 0) > 249) {
   36817           5 :     _luaX_syntaxerror(HEAP32[i8 + 12 >> 2] | 0, 10536);
   36818           5 :    } else {
   36819           5 :     HEAP8[i5] = i4;
   36820           5 :     i1 = HEAP8[i2] | 0;
   36821           5 :     break;
   36822           5 :    }
   36823           5 :   } else {
   36824           5 :    i1 = i6;
   36825           5 :   }
   36826           5 :  } while (0);
   36827           5 :  HEAP8[i2] = (i1 & 255) + i7;
   36828           5 :  STACKTOP = i3;
   36829           5 :  return;
   36830           5 : }
   36831           1 : function _aux_lines(i1, i5) {
   36832           0 :  i1 = i1 | 0;
   36833           0 :  i5 = i5 | 0;
   36834           0 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
   36835           0 :  i4 = STACKTOP;
   36836           0 :  i3 = _lua_gettop(i1) | 0;
   36837           0 :  i2 = i3 + -1 | 0;
   36838           0 :  if ((i3 | 0) >= 19) {
   36839           0 :   _luaL_argerror(i1, 17, 3320) | 0;
   36840           0 :  }
   36841           0 :  _lua_pushvalue(i1, 1);
   36842           0 :  _lua_pushinteger(i1, i2);
   36843           0 :  _lua_pushboolean(i1, i5);
   36844           0 :  if ((i3 | 0) >= 2) {
   36845           0 :   i5 = 1;
   36846           0 :   while (1) {
   36847           0 :    i6 = i5 + 1 | 0;
   36848           0 :    _lua_pushvalue(i1, i6);
   36849           0 :    if ((i5 | 0) < (i2 | 0)) {
   36850           0 :     i5 = i6;
   36851           0 :    } else {
   36852           0 :     break;
   36853           0 :    }
   36854           0 :   }
   36855           0 :  }
   36856           0 :  _lua_pushcclosure(i1, 155, i3 + 2 | 0);
   36857           0 :  STACKTOP = i4;
   36858           0 :  return;
   36859           1 : }
   36860         223 : function _memcmp(i2, i4, i3) {
   36861         223 :  i2 = i2 | 0;
   36862         223 :  i4 = i4 | 0;
   36863         223 :  i3 = i3 | 0;
   36864         223 :  var i1 = 0, i5 = 0, i6 = 0;
   36865         223 :  i1 = STACKTOP;
   36866         223 :  L1 : do {
   36867         223 :   if ((i3 | 0) == 0) {
   36868         223 :    i2 = 0;
   36869         223 :   } else {
   36870         223 :    while (1) {
   36871         223 :     i6 = HEAP8[i2] | 0;
   36872         223 :     i5 = HEAP8[i4] | 0;
   36873         223 :     if (!(i6 << 24 >> 24 == i5 << 24 >> 24)) {
   36874         223 :      break;
   36875         223 :     }
   36876         223 :     i3 = i3 + -1 | 0;
   36877         223 :     if ((i3 | 0) == 0) {
   36878         223 :      i2 = 0;
   36879         223 :      break L1;
   36880         223 :     } else {
   36881         223 :      i2 = i2 + 1 | 0;
   36882         223 :      i4 = i4 + 1 | 0;
   36883         223 :     }
   36884         223 :    }
   36885         223 :    i2 = (i6 & 255) - (i5 & 255) | 0;
   36886         223 :   }
   36887         223 :  } while (0);
   36888         223 :  STACKTOP = i1;
   36889         223 :  return i2 | 0;
   36890         223 : }
   36891           1 : function _b_arshift(i1) {
   36892           0 :  i1 = i1 | 0;
   36893           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   36894           0 :  i2 = STACKTOP;
   36895           0 :  i3 = _luaL_checkunsigned(i1, 1) | 0;
   36896           0 :  i4 = _luaL_checkinteger(i1, 2) | 0;
   36897           0 :  if ((i4 | 0) > -1 & (i3 | 0) < 0) {
   36898           0 :   if ((i4 | 0) > 31) {
   36899           0 :    i3 = -1;
   36900           0 :   } else {
   36901           0 :    i3 = i3 >>> i4 | ~(-1 >>> i4);
   36902           0 :   }
   36903           0 :   _lua_pushunsigned(i1, i3);
   36904           0 :   STACKTOP = i2;
   36905           0 :   return 1;
   36906           0 :  }
   36907           0 :  i5 = 0 - i4 | 0;
   36908           0 :  if ((i4 | 0) > 0) {
   36909           0 :   i3 = (i4 | 0) > 31 ? 0 : i3 >>> i4;
   36910           0 :  } else {
   36911           0 :   i3 = (i5 | 0) > 31 ? 0 : i3 << i5;
   36912           0 :  }
   36913           0 :  _lua_pushunsigned(i1, i3);
   36914           0 :  STACKTOP = i2;
   36915           0 :  return 1;
   36916           1 : }
   36917           1 : function _luaL_checkunsigned(i1, i5) {
   36918           0 :  i1 = i1 | 0;
   36919           0 :  i5 = i5 | 0;
   36920           0 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
   36921           0 :  i3 = STACKTOP;
   36922           0 :  STACKTOP = STACKTOP + 16 | 0;
   36923           0 :  i4 = i3;
   36924           0 :  i6 = i3 + 8 | 0;
   36925           0 :  i2 = _lua_tounsignedx(i1, i5, i6) | 0;
   36926           0 :  if ((HEAP32[i6 >> 2] | 0) != 0) {
   36927           0 :   STACKTOP = i3;
   36928           0 :   return i2 | 0;
   36929           0 :  }
   36930           0 :  i7 = _lua_typename(i1, 3) | 0;
   36931           0 :  i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
   36932           0 :  HEAP32[i4 >> 2] = i7;
   36933           0 :  HEAP32[i4 + 4 >> 2] = i6;
   36934           0 :  _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
   36935           0 :  STACKTOP = i3;
   36936           0 :  return i2 | 0;
   36937           1 : }
   36938           1 : function _luaB_loadfile(i2) {
   36939           0 :  i2 = i2 | 0;
   36940           0 :  var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   36941           0 :  i1 = STACKTOP;
   36942           0 :  i4 = _luaL_optlstring(i2, 1, 0, 0) | 0;
   36943           0 :  i5 = _luaL_optlstring(i2, 2, 0, 0) | 0;
   36944           0 :  i3 = (_lua_type(i2, 3) | 0) != -1;
   36945           0 :  i6 = i3 ? 3 : 0;
   36946           0 :  if ((_luaL_loadfilex(i2, i4, i5) | 0) == 0) {
   36947           0 :   if (i3 ? (_lua_pushvalue(i2, i6), (_lua_setupvalue(i2, -2, 1) | 0) == 0) : 0) {
   36948           0 :    _lua_settop(i2, -2);
   36949           0 :    i2 = 1;
   36950           0 :   } else {
   36951           0 :    i2 = 1;
   36952           0 :   }
   36953           0 :  } else {
   36954           0 :   _lua_pushnil(i2);
   36955           0 :   _lua_insert(i2, -2);
   36956           0 :   i2 = 2;
   36957           0 :  }
   36958           0 :  STACKTOP = i1;
   36959           0 :  return i2 | 0;
   36960           1 : }
   36961           1 : function _luaL_checkinteger(i1, i5) {
   36962           0 :  i1 = i1 | 0;
   36963           0 :  i5 = i5 | 0;
   36964           0 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
   36965           0 :  i3 = STACKTOP;
   36966           0 :  STACKTOP = STACKTOP + 16 | 0;
   36967           0 :  i4 = i3;
   36968           0 :  i6 = i3 + 8 | 0;
   36969           0 :  i2 = _lua_tointegerx(i1, i5, i6) | 0;
   36970           0 :  if ((HEAP32[i6 >> 2] | 0) != 0) {
   36971           0 :   STACKTOP = i3;
   36972           0 :   return i2 | 0;
   36973           0 :  }
   36974           0 :  i7 = _lua_typename(i1, 3) | 0;
   36975           0 :  i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
   36976           0 :  HEAP32[i4 >> 2] = i7;
   36977           0 :  HEAP32[i4 + 4 >> 2] = i6;
   36978           0 :  _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
   36979           0 :  STACKTOP = i3;
   36980           0 :  return i2 | 0;
   36981           1 : }
   36982           1 : function _luaB_select(i1) {
   36983           0 :  i1 = i1 | 0;
   36984           0 :  var i2 = 0, i3 = 0, i4 = 0;
   36985           0 :  i3 = STACKTOP;
   36986           0 :  i2 = _lua_gettop(i1) | 0;
   36987           0 :  if ((_lua_type(i1, 1) | 0) == 4 ? (HEAP8[_lua_tolstring(i1, 1, 0) | 0] | 0) == 35 : 0) {
   36988           0 :   _lua_pushinteger(i1, i2 + -1 | 0);
   36989           0 :   i4 = 1;
   36990           0 :   STACKTOP = i3;
   36991           0 :   return i4 | 0;
   36992           0 :  }
   36993           0 :  i4 = _luaL_checkinteger(i1, 1) | 0;
   36994           0 :  if ((i4 | 0) < 0) {
   36995           0 :   i4 = i4 + i2 | 0;
   36996           0 :  } else {
   36997           0 :   i4 = (i4 | 0) > (i2 | 0) ? i2 : i4;
   36998           0 :  }
   36999           0 :  if ((i4 | 0) <= 0) {
   37000           0 :   _luaL_argerror(i1, 1, 9760) | 0;
   37001           0 :  }
   37002           0 :  i4 = i2 - i4 | 0;
   37003           0 :  STACKTOP = i3;
   37004           0 :  return i4 | 0;
   37005           1 : }
   37006         322 : function _luaX_next(i1) {
   37007         322 :  i1 = i1 | 0;
   37008         322 :  var i2 = 0, i3 = 0;
   37009         322 :  i2 = STACKTOP;
   37010         322 :  HEAP32[i1 + 8 >> 2] = HEAP32[i1 + 4 >> 2];
   37011         322 :  i3 = i1 + 32 | 0;
   37012         322 :  if ((HEAP32[i3 >> 2] | 0) == 286) {
   37013         322 :   HEAP32[i1 + 16 >> 2] = _llex(i1, i1 + 24 | 0) | 0;
   37014         322 :   STACKTOP = i2;
   37015         322 :   return;
   37016         322 :  } else {
   37017         322 :   i1 = i1 + 16 | 0;
   37018         322 :   HEAP32[i1 + 0 >> 2] = HEAP32[i3 + 0 >> 2];
   37019         322 :   HEAP32[i1 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
   37020         322 :   HEAP32[i1 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
   37021         322 :   HEAP32[i1 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
   37022         322 :   HEAP32[i3 >> 2] = 286;
   37023         322 :   STACKTOP = i2;
   37024         322 :   return;
   37025         322 :  }
   37026         322 : }
   37027          12 : function _lua_setglobal(i1, i2) {
   37028          12 :  i1 = i1 | 0;
   37029          12 :  i2 = i2 | 0;
   37030          12 :  var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   37031          12 :  i3 = STACKTOP;
   37032          12 :  i5 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0;
   37033          12 :  i4 = i1 + 8 | 0;
   37034          12 :  i6 = HEAP32[i4 >> 2] | 0;
   37035          12 :  HEAP32[i4 >> 2] = i6 + 16;
   37036          12 :  i2 = _luaS_new(i1, i2) | 0;
   37037          12 :  HEAP32[i6 >> 2] = i2;
   37038          12 :  HEAP32[i6 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64;
   37039          12 :  i2 = HEAP32[i4 >> 2] | 0;
   37040          12 :  _luaV_settable(i1, i5, i2 + -16 | 0, i2 + -32 | 0);
   37041          12 :  HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -32;
   37042          12 :  STACKTOP = i3;
   37043          12 :  return;
   37044          12 : }
   37045          13 : function _luaL_checknumber(i1, i5) {
   37046          13 :  i1 = i1 | 0;
   37047          13 :  i5 = i5 | 0;
   37048          13 :  var d2 = 0.0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
   37049          13 :  i3 = STACKTOP;
   37050          13 :  STACKTOP = STACKTOP + 16 | 0;
   37051          13 :  i4 = i3;
   37052          13 :  i6 = i3 + 8 | 0;
   37053          13 :  d2 = +_lua_tonumberx(i1, i5, i6);
   37054          13 :  if ((HEAP32[i6 >> 2] | 0) != 0) {
   37055          13 :   STACKTOP = i3;
   37056          13 :   return +d2;
   37057          13 :  }
   37058          13 :  i7 = _lua_typename(i1, 3) | 0;
   37059          13 :  i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
   37060          13 :  HEAP32[i4 >> 2] = i7;
   37061          13 :  HEAP32[i4 + 4 >> 2] = i6;
   37062          13 :  _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
   37063          13 :  STACKTOP = i3;
   37064          13 :  return +d2;
   37065          13 : }
   37066           4 : function _luaZ_fill(i1) {
   37067           4 :  i1 = i1 | 0;
   37068           4 :  var i2 = 0, i3 = 0, i4 = 0;
   37069           4 :  i2 = STACKTOP;
   37070           4 :  STACKTOP = STACKTOP + 16 | 0;
   37071           4 :  i4 = i2;
   37072           4 :  i3 = FUNCTION_TABLE_iiii[HEAP32[i1 + 8 >> 2] & 3](HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0, i4) | 0;
   37073           4 :  if ((i3 | 0) == 0) {
   37074           4 :   i4 = -1;
   37075           4 :   STACKTOP = i2;
   37076           4 :   return i4 | 0;
   37077           4 :  }
   37078           4 :  i4 = HEAP32[i4 >> 2] | 0;
   37079           4 :  if ((i4 | 0) == 0) {
   37080           4 :   i4 = -1;
   37081           4 :   STACKTOP = i2;
   37082           4 :   return i4 | 0;
   37083           4 :  }
   37084           4 :  HEAP32[i1 >> 2] = i4 + -1;
   37085           4 :  HEAP32[i1 + 4 >> 2] = i3 + 1;
   37086           4 :  i4 = HEAPU8[i3] | 0;
   37087           4 :  STACKTOP = i2;
   37088           4 :  return i4 | 0;
   37089           4 : }
   37090          17 : function _lua_createtable(i1, i3, i4) {
   37091          17 :  i1 = i1 | 0;
   37092          17 :  i3 = i3 | 0;
   37093          17 :  i4 = i4 | 0;
   37094          17 :  var i2 = 0, i5 = 0, i6 = 0, i7 = 0;
   37095          17 :  i2 = STACKTOP;
   37096          17 :  if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   37097          17 :   _luaC_step(i1);
   37098          17 :  }
   37099          17 :  i5 = _luaH_new(i1) | 0;
   37100          17 :  i6 = i1 + 8 | 0;
   37101          17 :  i7 = HEAP32[i6 >> 2] | 0;
   37102          17 :  HEAP32[i7 >> 2] = i5;
   37103          17 :  HEAP32[i7 + 8 >> 2] = 69;
   37104          17 :  HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
   37105          17 :  if (!((i3 | 0) > 0 | (i4 | 0) > 0)) {
   37106          17 :   STACKTOP = i2;
   37107          17 :   return;
   37108          17 :  }
   37109          17 :  _luaH_resize(i1, i5, i3, i4);
   37110          17 :  STACKTOP = i2;
   37111          17 :  return;
   37112          17 : }
   37113           1 : function _generic_reader(i1, i3, i2) {
   37114           0 :  i1 = i1 | 0;
   37115           0 :  i3 = i3 | 0;
   37116           0 :  i2 = i2 | 0;
   37117           0 :  i3 = STACKTOP;
   37118           0 :  STACKTOP = STACKTOP + 16 | 0;
   37119           0 :  _luaL_checkstack(i1, 2, 9888);
   37120           0 :  _lua_pushvalue(i1, 1);
   37121           0 :  _lua_callk(i1, 0, 1, 0, 0);
   37122           0 :  if ((_lua_type(i1, -1) | 0) == 0) {
   37123           0 :   _lua_settop(i1, -2);
   37124           0 :   HEAP32[i2 >> 2] = 0;
   37125           0 :   i2 = 0;
   37126           0 :   STACKTOP = i3;
   37127           0 :   return i2 | 0;
   37128           0 :  }
   37129           0 :  if ((_lua_isstring(i1, -1) | 0) == 0) {
   37130           0 :   _luaL_error(i1, 9920, i3) | 0;
   37131           0 :  }
   37132           0 :  _lua_replace(i1, 5);
   37133           0 :  i2 = _lua_tolstring(i1, 5, i2) | 0;
   37134           0 :  STACKTOP = i3;
   37135           0 :  return i2 | 0;
   37136           1 : }
   37137           1 : function _luaZ_openspace(i5, i1, i6) {
   37138           1 :  i5 = i5 | 0;
   37139           1 :  i1 = i1 | 0;
   37140           1 :  i6 = i6 | 0;
   37141           1 :  var i2 = 0, i3 = 0, i4 = 0;
   37142           1 :  i2 = STACKTOP;
   37143           1 :  i4 = i1 + 8 | 0;
   37144           1 :  i3 = HEAP32[i4 >> 2] | 0;
   37145           1 :  if (!(i3 >>> 0 < i6 >>> 0)) {
   37146           1 :   i6 = HEAP32[i1 >> 2] | 0;
   37147           1 :   STACKTOP = i2;
   37148           1 :   return i6 | 0;
   37149           1 :  }
   37150           1 :  i6 = i6 >>> 0 < 32 ? 32 : i6;
   37151           1 :  if ((i6 + 1 | 0) >>> 0 > 4294967293) {
   37152           1 :   _luaM_toobig(i5);
   37153           1 :  }
   37154           1 :  i5 = _luaM_realloc_(i5, HEAP32[i1 >> 2] | 0, i3, i6) | 0;
   37155           1 :  HEAP32[i1 >> 2] = i5;
   37156           1 :  HEAP32[i4 >> 2] = i6;
   37157           1 :  i6 = i5;
   37158           1 :  STACKTOP = i2;
   37159           1 :  return i6 | 0;
   37160           1 : }
   37161          10 : function _luaH_getstr(i4, i3) {
   37162          10 :  i4 = i4 | 0;
   37163          10 :  i3 = i3 | 0;
   37164          10 :  var i1 = 0, i2 = 0;
   37165          10 :  i2 = STACKTOP;
   37166          10 :  i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 & HEAP32[i3 + 8 >> 2]) << 5) | 0;
   37167          10 :  while (1) {
   37168          10 :   if ((HEAP32[i4 + 24 >> 2] | 0) == 68 ? (HEAP32[i4 + 16 >> 2] | 0) == (i3 | 0) : 0) {
   37169          10 :    break;
   37170          10 :   }
   37171          10 :   i4 = HEAP32[i4 + 28 >> 2] | 0;
   37172          10 :   if ((i4 | 0) == 0) {
   37173          10 :    i3 = 5192;
   37174          10 :    i1 = 6;
   37175          10 :    break;
   37176          10 :   }
   37177          10 :  }
   37178          10 :  if ((i1 | 0) == 6) {
   37179          10 :   STACKTOP = i2;
   37180          10 :   return i3 | 0;
   37181          10 :  }
   37182          10 :  STACKTOP = i2;
   37183          10 :  return i4 | 0;
   37184          10 : }
   37185           1 : function _b_extract(i1) {
   37186           0 :  i1 = i1 | 0;
   37187           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   37188           0 :  i5 = STACKTOP;
   37189           0 :  STACKTOP = STACKTOP + 16 | 0;
   37190           0 :  i2 = _luaL_checkunsigned(i1, 1) | 0;
   37191           0 :  i3 = _luaL_checkinteger(i1, 2) | 0;
   37192           0 :  i4 = _luaL_optinteger(i1, 3, 1) | 0;
   37193           0 :  if (!((i3 | 0) > -1)) {
   37194           0 :   _luaL_argerror(i1, 2, 10440) | 0;
   37195           0 :  }
   37196           0 :  if ((i4 | 0) <= 0) {
   37197           0 :   _luaL_argerror(i1, 3, 10472) | 0;
   37198           0 :  }
   37199           0 :  if ((i4 + i3 | 0) > 32) {
   37200           0 :   _luaL_error(i1, 10496, i5) | 0;
   37201           0 :  }
   37202           0 :  _lua_pushunsigned(i1, i2 >>> i3 & ~(-2 << i4 + -1));
   37203           0 :  STACKTOP = i5;
   37204           0 :  return 1;
   37205           1 : }
   37206          10 : function _luaL_checklstring(i1, i4, i5) {
   37207          10 :  i1 = i1 | 0;
   37208          10 :  i4 = i4 | 0;
   37209          10 :  i5 = i5 | 0;
   37210          10 :  var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
   37211          10 :  i2 = STACKTOP;
   37212          10 :  STACKTOP = STACKTOP + 16 | 0;
   37213          10 :  i3 = i2;
   37214          10 :  i5 = _lua_tolstring(i1, i4, i5) | 0;
   37215          10 :  if ((i5 | 0) != 0) {
   37216          10 :   STACKTOP = i2;
   37217          10 :   return i5 | 0;
   37218          10 :  }
   37219          10 :  i7 = _lua_typename(i1, 4) | 0;
   37220          10 :  i6 = _lua_typename(i1, _lua_type(i1, i4) | 0) | 0;
   37221          10 :  HEAP32[i3 >> 2] = i7;
   37222          10 :  HEAP32[i3 + 4 >> 2] = i6;
   37223          10 :  _luaL_argerror(i1, i4, _lua_pushfstring(i1, 1744, i3) | 0) | 0;
   37224          10 :  STACKTOP = i2;
   37225          10 :  return i5 | 0;
   37226          10 : }
   37227           1 : function _db_traceback(i1) {
   37228           0 :  i1 = i1 | 0;
   37229           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   37230           0 :  i2 = STACKTOP;
   37231           0 :  if ((_lua_type(i1, 1) | 0) == 8) {
   37232           0 :   i3 = _lua_tothread(i1, 1) | 0;
   37233           0 :   i4 = 1;
   37234           0 :  } else {
   37235           0 :   i3 = i1;
   37236           0 :   i4 = 0;
   37237           0 :  }
   37238           0 :  i5 = i4 + 1 | 0;
   37239           0 :  i6 = _lua_tolstring(i1, i5, 0) | 0;
   37240           0 :  if ((i6 | 0) == 0 ? (_lua_type(i1, i5) | 0) >= 1 : 0) {
   37241           0 :   _lua_pushvalue(i1, i5);
   37242           0 :   STACKTOP = i2;
   37243           0 :   return 1;
   37244           0 :  }
   37245           0 :  _luaL_traceback(i1, i3, i6, _luaL_optinteger(i1, i4 | 2, (i3 | 0) == (i1 | 0) | 0) | 0);
   37246           0 :  STACKTOP = i2;
   37247           0 :  return 1;
   37248           1 : }
   37249           1 : function _f_setvbuf(i1) {
   37250           0 :  i1 = i1 | 0;
   37251           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   37252           0 :  i2 = STACKTOP;
   37253           0 :  STACKTOP = STACKTOP + 16 | 0;
   37254           0 :  i3 = _luaL_checkudata(i1, 1, 2832) | 0;
   37255           0 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   37256           0 :   _luaL_error(i1, 3080, i2) | 0;
   37257           0 :  }
   37258           0 :  i5 = HEAP32[i3 >> 2] | 0;
   37259           0 :  i4 = _luaL_checkoption(i1, 2, 0, 3128) | 0;
   37260           0 :  i3 = _luaL_optinteger(i1, 3, 1024) | 0;
   37261           0 :  i3 = _luaL_fileresult(i1, (_setvbuf(i5 | 0, 0, HEAP32[3112 + (i4 << 2) >> 2] | 0, i3 | 0) | 0) == 0 | 0, 0) | 0;
   37262           0 :  STACKTOP = i2;
   37263           0 :  return i3 | 0;
   37264           1 : }
   37265           1 : function _luaU_dump(i3, i1, i4, i2, i5) {
   37266           0 :  i3 = i3 | 0;
   37267           0 :  i1 = i1 | 0;
   37268           0 :  i4 = i4 | 0;
   37269           0 :  i2 = i2 | 0;
   37270           0 :  i5 = i5 | 0;
   37271           0 :  var i6 = 0, i7 = 0, i8 = 0;
   37272           0 :  i6 = STACKTOP;
   37273           0 :  STACKTOP = STACKTOP + 48 | 0;
   37274           0 :  i8 = i6 + 20 | 0;
   37275           0 :  i7 = i6;
   37276           0 :  HEAP32[i7 >> 2] = i3;
   37277           0 :  HEAP32[i7 + 4 >> 2] = i4;
   37278           0 :  HEAP32[i7 + 8 >> 2] = i2;
   37279           0 :  HEAP32[i7 + 12 >> 2] = i5;
   37280           0 :  i5 = i7 + 16 | 0;
   37281           0 :  _luaU_header(i8);
   37282           0 :  HEAP32[i5 >> 2] = FUNCTION_TABLE_iiiii[i4 & 3](i3, i8, 18, i2) | 0;
   37283           0 :  _DumpFunction(i1, i7);
   37284           0 :  STACKTOP = i6;
   37285           0 :  return HEAP32[i5 >> 2] | 0;
   37286           1 : }
   37287           1 : function _luaB_setmetatable(i1) {
   37288           0 :  i1 = i1 | 0;
   37289           0 :  var i2 = 0, i3 = 0;
   37290           0 :  i2 = STACKTOP;
   37291           0 :  STACKTOP = STACKTOP + 16 | 0;
   37292           0 :  i3 = _lua_type(i1, 2) | 0;
   37293           0 :  _luaL_checktype(i1, 1, 5);
   37294           0 :  if (!((i3 | 0) == 0 | (i3 | 0) == 5)) {
   37295           0 :   _luaL_argerror(i1, 2, 9680) | 0;
   37296           0 :  }
   37297           0 :  if ((_luaL_getmetafield(i1, 1, 9704) | 0) == 0) {
   37298           0 :   _lua_settop(i1, 2);
   37299           0 :   _lua_setmetatable(i1, 1) | 0;
   37300           0 :   i3 = 1;
   37301           0 :   STACKTOP = i2;
   37302           0 :   return i3 | 0;
   37303           0 :  } else {
   37304           0 :   i3 = _luaL_error(i1, 9720, i2) | 0;
   37305           0 :   STACKTOP = i2;
   37306           0 :   return i3 | 0;
   37307           0 :  }
   37308           0 :  return 0;
   37309           1 : }
   37310           4 : function _getF(i3, i2, i1) {
   37311           4 :  i3 = i3 | 0;
   37312           4 :  i2 = i2 | 0;
   37313           4 :  i1 = i1 | 0;
   37314           4 :  var i4 = 0;
   37315           4 :  i3 = STACKTOP;
   37316           4 :  i4 = HEAP32[i2 >> 2] | 0;
   37317           4 :  if ((i4 | 0) > 0) {
   37318           4 :   HEAP32[i1 >> 2] = i4;
   37319           4 :   HEAP32[i2 >> 2] = 0;
   37320           4 :   i4 = i2 + 8 | 0;
   37321           4 :   STACKTOP = i3;
   37322           4 :   return i4 | 0;
   37323           4 :  }
   37324           4 :  i4 = i2 + 4 | 0;
   37325           4 :  if ((_feof(HEAP32[i4 >> 2] | 0) | 0) != 0) {
   37326           4 :   i4 = 0;
   37327           4 :   STACKTOP = i3;
   37328           4 :   return i4 | 0;
   37329           4 :  }
   37330           4 :  i2 = i2 + 8 | 0;
   37331           4 :  HEAP32[i1 >> 2] = _fread(i2 | 0, 1, 1024, HEAP32[i4 >> 2] | 0) | 0;
   37332           4 :  i4 = i2;
   37333           4 :  STACKTOP = i3;
   37334           4 :  return i4 | 0;
   37335           4 : }
   37336           1 : function _luaL_where(i1, i6) {
   37337           0 :  i1 = i1 | 0;
   37338           0 :  i6 = i6 | 0;
   37339           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   37340           0 :  i4 = STACKTOP;
   37341           0 :  STACKTOP = STACKTOP + 112 | 0;
   37342           0 :  i3 = i4;
   37343           0 :  i2 = i4 + 8 | 0;
   37344           0 :  if ((_lua_getstack(i1, i6, i2) | 0) != 0 ? (_lua_getinfo(i1, 1152, i2) | 0, i5 = HEAP32[i2 + 20 >> 2] | 0, (i5 | 0) > 0) : 0) {
   37345           0 :   HEAP32[i3 >> 2] = i2 + 36;
   37346           0 :   HEAP32[i3 + 4 >> 2] = i5;
   37347           0 :   _lua_pushfstring(i1, 1160, i3) | 0;
   37348           0 :   STACKTOP = i4;
   37349           0 :   return;
   37350           0 :  }
   37351           0 :  _lua_pushlstring(i1, 1168, 0) | 0;
   37352           0 :  STACKTOP = i4;
   37353           0 :  return;
   37354           1 : }
   37355           1 : function _hookf(i1, i3) {
   37356           0 :  i1 = i1 | 0;
   37357           0 :  i3 = i3 | 0;
   37358           0 :  var i2 = 0;
   37359           0 :  i2 = STACKTOP;
   37360           0 :  _luaL_getsubtable(i1, -1001e3, 11584) | 0;
   37361           0 :  _lua_pushthread(i1) | 0;
   37362           0 :  _lua_rawget(i1, -2);
   37363           0 :  if ((_lua_type(i1, -1) | 0) != 6) {
   37364           0 :   STACKTOP = i2;
   37365           0 :   return;
   37366           0 :  }
   37367           0 :  _lua_pushstring(i1, HEAP32[11608 + (HEAP32[i3 >> 2] << 2) >> 2] | 0) | 0;
   37368           0 :  i3 = HEAP32[i3 + 20 >> 2] | 0;
   37369           0 :  if ((i3 | 0) > -1) {
   37370           0 :   _lua_pushinteger(i1, i3);
   37371           0 :  } else {
   37372           0 :   _lua_pushnil(i1);
   37373           0 :  }
   37374           0 :  _lua_callk(i1, 2, 0, 0, 0);
   37375           0 :  STACKTOP = i2;
   37376           0 :  return;
   37377           1 : }
   37378           1 : function _luaV_tonumber(i5, i2) {
   37379           1 :  i5 = i5 | 0;
   37380           1 :  i2 = i2 | 0;
   37381           1 :  var i1 = 0, i3 = 0, i4 = 0;
   37382           1 :  i1 = STACKTOP;
   37383           1 :  STACKTOP = STACKTOP + 16 | 0;
   37384           1 :  i3 = i1;
   37385           1 :  i4 = HEAP32[i5 + 8 >> 2] | 0;
   37386           1 :  if ((i4 | 0) != 3) {
   37387           1 :   if ((i4 & 15 | 0) == 4 ? (i5 = HEAP32[i5 >> 2] | 0, (_luaO_str2d(i5 + 16 | 0, HEAP32[i5 + 12 >> 2] | 0, i3) | 0) != 0) : 0) {
   37388           1 :    HEAPF64[i2 >> 3] = +HEAPF64[i3 >> 3];
   37389           1 :    HEAP32[i2 + 8 >> 2] = 3;
   37390           1 :   } else {
   37391           1 :    i2 = 0;
   37392           1 :   }
   37393           1 :  } else {
   37394           1 :   i2 = i5;
   37395           1 :  }
   37396           1 :  STACKTOP = i1;
   37397           1 :  return i2 | 0;
   37398           1 : }
   37399           1 : function _luaO_arith(i3, d1, d2) {
   37400           0 :  i3 = i3 | 0;
   37401           0 :  d1 = +d1;
   37402           0 :  d2 = +d2;
   37403           0 :  switch (i3 | 0) {
   37404           0 :  case 4:
   37405           0 :   {
   37406           0 :    d1 = d1 - +Math_floor(+(d1 / d2)) * d2;
   37407           0 :    break;
   37408           0 :   }
   37409           0 :  case 6:
   37410           0 :   {
   37411           0 :    d1 = -d1;
   37412           0 :    break;
   37413           0 :   }
   37414           0 :  case 0:
   37415           0 :   {
   37416           0 :    d1 = d1 + d2;
   37417           0 :    break;
   37418           0 :   }
   37419           0 :  case 1:
   37420           0 :   {
   37421           0 :    d1 = d1 - d2;
   37422           0 :    break;
   37423           0 :   }
   37424           0 :  case 5:
   37425           0 :   {
   37426           0 :    d1 = +Math_pow(+d1, +d2);
   37427           0 :    break;
   37428           0 :   }
   37429           0 :  case 3:
   37430           0 :   {
   37431           0 :    d1 = d1 / d2;
   37432           0 :    break;
   37433           0 :   }
   37434           0 :  case 2:
   37435           0 :   {
   37436           0 :    d1 = d1 * d2;
   37437           0 :    break;
   37438           0 :   }
   37439           0 :  default:
   37440           0 :   {
   37441           0 :    d1 = 0.0;
   37442           0 :   }
   37443           0 :  }
   37444           0 :  return +d1;
   37445           1 : }
   37446           1 : function _luaB_coresume(i1) {
   37447           0 :  i1 = i1 | 0;
   37448           0 :  var i2 = 0, i3 = 0;
   37449           0 :  i2 = STACKTOP;
   37450           0 :  i3 = _lua_tothread(i1, 1) | 0;
   37451           0 :  if ((i3 | 0) == 0) {
   37452           0 :   _luaL_argerror(i1, 1, 10856) | 0;
   37453           0 :  }
   37454           0 :  i3 = _auxresume(i1, i3, (_lua_gettop(i1) | 0) + -1 | 0) | 0;
   37455           0 :  if ((i3 | 0) < 0) {
   37456           0 :   _lua_pushboolean(i1, 0);
   37457           0 :   _lua_insert(i1, -2);
   37458           0 :   i3 = 2;
   37459           0 :   STACKTOP = i2;
   37460           0 :   return i3 | 0;
   37461           0 :  } else {
   37462           0 :   _lua_pushboolean(i1, 1);
   37463           0 :   _lua_insert(i1, ~i3);
   37464           0 :   i3 = i3 + 1 | 0;
   37465           0 :   STACKTOP = i2;
   37466           0 :   return i3 | 0;
   37467           0 :  }
   37468           0 :  return 0;
   37469           1 : }
   37470           1 : function _pairsmeta(i1, i5, i4, i3) {
   37471           0 :  i1 = i1 | 0;
   37472           0 :  i5 = i5 | 0;
   37473           0 :  i4 = i4 | 0;
   37474           0 :  i3 = i3 | 0;
   37475           0 :  var i2 = 0;
   37476           0 :  i2 = STACKTOP;
   37477           0 :  if ((_luaL_getmetafield(i1, 1, i5) | 0) != 0) {
   37478           0 :   _lua_pushvalue(i1, 1);
   37479           0 :   _lua_callk(i1, 1, 3, 0, 0);
   37480           0 :   STACKTOP = i2;
   37481           0 :   return;
   37482           0 :  }
   37483           0 :  _luaL_checktype(i1, 1, 5);
   37484           0 :  _lua_pushcclosure(i1, i3, 0);
   37485           0 :  _lua_pushvalue(i1, 1);
   37486           0 :  if ((i4 | 0) == 0) {
   37487           0 :   _lua_pushnil(i1);
   37488           0 :   STACKTOP = i2;
   37489           0 :   return;
   37490           0 :  } else {
   37491           0 :   _lua_pushinteger(i1, 0);
   37492           0 :   STACKTOP = i2;
   37493           0 :   return;
   37494           0 :  }
   37495           1 : }
   37496           1 : function _io_close(i1) {
   37497           0 :  i1 = i1 | 0;
   37498           0 :  var i2 = 0, i3 = 0, i4 = 0;
   37499           0 :  i2 = STACKTOP;
   37500           0 :  STACKTOP = STACKTOP + 16 | 0;
   37501           0 :  if ((_lua_type(i1, 1) | 0) == -1) {
   37502           0 :   _lua_getfield(i1, -1001e3, 2800);
   37503           0 :  }
   37504           0 :  if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) == 0) {
   37505           0 :   _luaL_error(i1, 3080, i2) | 0;
   37506           0 :  }
   37507           0 :  i4 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0;
   37508           0 :  i3 = HEAP32[i4 >> 2] | 0;
   37509           0 :  HEAP32[i4 >> 2] = 0;
   37510           0 :  i1 = FUNCTION_TABLE_ii[i3 & 255](i1) | 0;
   37511           0 :  STACKTOP = i2;
   37512           0 :  return i1 | 0;
   37513           1 : }
   37514           1 : function _pack(i1) {
   37515           0 :  i1 = i1 | 0;
   37516           0 :  var i2 = 0, i3 = 0;
   37517           0 :  i2 = STACKTOP;
   37518           0 :  i3 = _lua_gettop(i1) | 0;
   37519           0 :  _lua_createtable(i1, i3, 1);
   37520           0 :  _lua_pushinteger(i1, i3);
   37521           0 :  _lua_setfield(i1, -2, 8312);
   37522           0 :  if ((i3 | 0) <= 0) {
   37523           0 :   STACKTOP = i2;
   37524           0 :   return 1;
   37525           0 :  }
   37526           0 :  _lua_pushvalue(i1, 1);
   37527           0 :  _lua_rawseti(i1, -2, 1);
   37528           0 :  _lua_replace(i1, 1);
   37529           0 :  if ((i3 | 0) <= 1) {
   37530           0 :   STACKTOP = i2;
   37531           0 :   return 1;
   37532           0 :  }
   37533           0 :  do {
   37534           0 :   _lua_rawseti(i1, 1, i3);
   37535           0 :   i3 = i3 + -1 | 0;
   37536           0 :  } while ((i3 | 0) > 1);
   37537           0 :  STACKTOP = i2;
   37538           0 :  return 1;
   37539           1 : }
   37540           1 : function _luaL_execresult(i1, i3) {
   37541           0 :  i1 = i1 | 0;
   37542           0 :  i3 = i3 | 0;
   37543           0 :  var i2 = 0;
   37544           0 :  i2 = STACKTOP;
   37545           0 :  if ((i3 | 0) == -1) {
   37546           0 :   i3 = HEAP32[(___errno_location() | 0) >> 2] | 0;
   37547           0 :   _lua_pushnil(i1);
   37548           0 :   _lua_pushstring(i1, _strerror(i3 | 0) | 0) | 0;
   37549           0 :   _lua_pushinteger(i1, i3);
   37550           0 :   STACKTOP = i2;
   37551           0 :   return 3;
   37552           0 :  } else if ((i3 | 0) == 0) {
   37553           0 :   _lua_pushboolean(i1, 1);
   37554           0 :  } else {
   37555           0 :   _lua_pushnil(i1);
   37556           0 :  }
   37557           0 :  _lua_pushstring(i1, 1184) | 0;
   37558           0 :  _lua_pushinteger(i1, i3);
   37559           0 :  STACKTOP = i2;
   37560           0 :  return 3;
   37561           1 : }
   37562           1 : function _lua_getglobal(i1, i2) {
   37563           0 :  i1 = i1 | 0;
   37564           0 :  i2 = i2 | 0;
   37565           0 :  var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   37566           0 :  i3 = STACKTOP;
   37567           0 :  i4 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0;
   37568           0 :  i5 = i1 + 8 | 0;
   37569           0 :  i6 = HEAP32[i5 >> 2] | 0;
   37570           0 :  HEAP32[i5 >> 2] = i6 + 16;
   37571           0 :  i2 = _luaS_new(i1, i2) | 0;
   37572           0 :  HEAP32[i6 >> 2] = i2;
   37573           0 :  HEAP32[i6 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64;
   37574           0 :  i2 = (HEAP32[i5 >> 2] | 0) + -16 | 0;
   37575           0 :  _luaV_gettable(i1, i4, i2, i2);
   37576           0 :  STACKTOP = i3;
   37577           0 :  return;
   37578           1 : }
   37579           1 : function _luaL_checktype(i1, i5, i4) {
   37580           0 :  i1 = i1 | 0;
   37581           0 :  i5 = i5 | 0;
   37582           0 :  i4 = i4 | 0;
   37583           0 :  var i2 = 0, i3 = 0, i6 = 0;
   37584           0 :  i2 = STACKTOP;
   37585           0 :  STACKTOP = STACKTOP + 16 | 0;
   37586           0 :  i3 = i2;
   37587           0 :  if ((_lua_type(i1, i5) | 0) == (i4 | 0)) {
   37588           0 :   STACKTOP = i2;
   37589           0 :   return;
   37590           0 :  }
   37591           0 :  i6 = _lua_typename(i1, i4) | 0;
   37592           0 :  i4 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
   37593           0 :  HEAP32[i3 >> 2] = i6;
   37594           0 :  HEAP32[i3 + 4 >> 2] = i4;
   37595           0 :  _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i3) | 0) | 0;
   37596           0 :  STACKTOP = i2;
   37597           0 :  return;
   37598           1 : }
   37599      143275 : function _luaC_newobj(i7, i4, i6, i5, i1) {
   37600      143275 :  i7 = i7 | 0;
   37601      143275 :  i4 = i4 | 0;
   37602      143275 :  i6 = i6 | 0;
   37603      143275 :  i5 = i5 | 0;
   37604      143275 :  i1 = i1 | 0;
   37605      143275 :  var i2 = 0, i3 = 0;
   37606      143275 :  i2 = STACKTOP;
   37607      143275 :  i3 = HEAP32[i7 + 12 >> 2] | 0;
   37608      143275 :  i7 = _luaM_realloc_(i7, 0, i4 & 15, i6) | 0;
   37609      143275 :  i6 = i7 + i1 | 0;
   37610      143275 :  i5 = (i5 | 0) == 0 ? i3 + 68 | 0 : i5;
   37611      143275 :  HEAP8[i7 + (i1 + 5) | 0] = HEAP8[i3 + 60 | 0] & 3;
   37612      143275 :  HEAP8[i7 + (i1 + 4) | 0] = i4;
   37613      143275 :  HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
   37614      143275 :  HEAP32[i5 >> 2] = i6;
   37615      143275 :  STACKTOP = i2;
   37616      143275 :  return i6 | 0;
   37617      143275 : }
   37618          10 : function _luaL_requiref(i1, i3, i5, i4) {
   37619          10 :  i1 = i1 | 0;
   37620          10 :  i3 = i3 | 0;
   37621          10 :  i5 = i5 | 0;
   37622          10 :  i4 = i4 | 0;
   37623          10 :  var i2 = 0;
   37624          10 :  i2 = STACKTOP;
   37625          10 :  _lua_pushcclosure(i1, i5, 0);
   37626          10 :  _lua_pushstring(i1, i3) | 0;
   37627          10 :  _lua_callk(i1, 1, 1, 0, 0);
   37628          10 :  _luaL_getsubtable(i1, -1001e3, 1432) | 0;
   37629          10 :  _lua_pushvalue(i1, -2);
   37630          10 :  _lua_setfield(i1, -2, i3);
   37631          10 :  _lua_settop(i1, -2);
   37632          10 :  if ((i4 | 0) == 0) {
   37633          10 :   STACKTOP = i2;
   37634          10 :   return;
   37635          10 :  }
   37636          10 :  _lua_pushvalue(i1, -1);
   37637          10 :  _lua_setglobal(i1, i3);
   37638          10 :  STACKTOP = i2;
   37639          10 :  return;
   37640          10 : }
   37641           1 : function _luaG_ordererror(i1, i3, i4) {
   37642           0 :  i1 = i1 | 0;
   37643           0 :  i3 = i3 | 0;
   37644           0 :  i4 = i4 | 0;
   37645           0 :  var i2 = 0;
   37646           0 :  i2 = STACKTOP;
   37647           0 :  STACKTOP = STACKTOP + 16 | 0;
   37648           0 :  i3 = HEAP32[8528 + ((HEAP32[i3 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0;
   37649           0 :  i4 = HEAP32[8528 + ((HEAP32[i4 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0;
   37650           0 :  if ((i3 | 0) == (i4 | 0)) {
   37651           0 :   HEAP32[i2 >> 2] = i3;
   37652           0 :   _luaG_runerror(i1, 1952, i2);
   37653           0 :  } else {
   37654           0 :   HEAP32[i2 >> 2] = i3;
   37655           0 :   HEAP32[i2 + 4 >> 2] = i4;
   37656           0 :   _luaG_runerror(i1, 1992, i2);
   37657           0 :  }
   37658           1 : }
   37659           1 : function _io_popen(i1) {
   37660           0 :  i1 = i1 | 0;
   37661           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   37662           0 :  i2 = STACKTOP;
   37663           0 :  STACKTOP = STACKTOP + 16 | 0;
   37664           0 :  i3 = _luaL_checklstring(i1, 1, 0) | 0;
   37665           0 :  _luaL_optlstring(i1, 2, 3480, 0) | 0;
   37666           0 :  i5 = _lua_newuserdata(i1, 8) | 0;
   37667           0 :  i4 = i5 + 4 | 0;
   37668           0 :  HEAP32[i4 >> 2] = 0;
   37669           0 :  _luaL_setmetatable(i1, 2832);
   37670           0 :  _luaL_error(i1, 3488, i2) | 0;
   37671           0 :  HEAP32[i5 >> 2] = 0;
   37672           0 :  HEAP32[i4 >> 2] = 157;
   37673           0 :  i1 = _luaL_fileresult(i1, 0, i3) | 0;
   37674           0 :  STACKTOP = i2;
   37675           0 :  return i1 | 0;
   37676           1 : }
   37677           1 : function _sort_comp(i1, i3, i4) {
   37678           0 :  i1 = i1 | 0;
   37679           0 :  i3 = i3 | 0;
   37680           0 :  i4 = i4 | 0;
   37681           0 :  var i2 = 0;
   37682           0 :  i2 = STACKTOP;
   37683           0 :  if ((_lua_type(i1, 2) | 0) == 0) {
   37684           0 :   i4 = _lua_compare(i1, i3, i4, 1) | 0;
   37685           0 :   STACKTOP = i2;
   37686           0 :   return i4 | 0;
   37687           0 :  } else {
   37688           0 :   _lua_pushvalue(i1, 2);
   37689           0 :   _lua_pushvalue(i1, i3 + -1 | 0);
   37690           0 :   _lua_pushvalue(i1, i4 + -2 | 0);
   37691           0 :   _lua_callk(i1, 2, 1, 0, 0);
   37692           0 :   i4 = _lua_toboolean(i1, -1) | 0;
   37693           0 :   _lua_settop(i1, -2);
   37694           0 :   STACKTOP = i2;
   37695           0 :   return i4 | 0;
   37696           0 :  }
   37697           0 :  return 0;
   37698           1 : }
   37699           1 : function _db_upvalueid(i1) {
   37700           0 :  i1 = i1 | 0;
   37701           0 :  var i2 = 0, i3 = 0, i4 = 0;
   37702           0 :  i3 = STACKTOP;
   37703           0 :  STACKTOP = STACKTOP + 112 | 0;
   37704           0 :  i4 = i3;
   37705           0 :  i2 = _luaL_checkinteger(i1, 2) | 0;
   37706           0 :  _luaL_checktype(i1, 1, 6);
   37707           0 :  _lua_pushvalue(i1, 1);
   37708           0 :  _lua_getinfo(i1, 11728, i4) | 0;
   37709           0 :  if (!((i2 | 0) > 0 ? (i2 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) {
   37710           0 :   _luaL_argerror(i1, 2, 11736) | 0;
   37711           0 :  }
   37712           0 :  _lua_pushlightuserdata(i1, _lua_upvalueid(i1, 1, i2) | 0);
   37713           0 :  STACKTOP = i3;
   37714           0 :  return 1;
   37715           1 : }
   37716           1 : function _luaL_getmetafield(i2, i4, i3) {
   37717           0 :  i2 = i2 | 0;
   37718           0 :  i4 = i4 | 0;
   37719           0 :  i3 = i3 | 0;
   37720           0 :  var i1 = 0;
   37721           0 :  i1 = STACKTOP;
   37722           0 :  do {
   37723           0 :   if ((_lua_getmetatable(i2, i4) | 0) != 0) {
   37724           0 :    _lua_pushstring(i2, i3) | 0;
   37725           0 :    _lua_rawget(i2, -2);
   37726           0 :    if ((_lua_type(i2, -1) | 0) == 0) {
   37727           0 :     _lua_settop(i2, -3);
   37728           0 :     i2 = 0;
   37729           0 :     break;
   37730           0 :    } else {
   37731           0 :     _lua_remove(i2, -2);
   37732           0 :     i2 = 1;
   37733           0 :     break;
   37734           0 :    }
   37735           0 :   } else {
   37736           0 :    i2 = 0;
   37737           0 :   }
   37738           0 :  } while (0);
   37739           0 :  STACKTOP = i1;
   37740           0 :  return i2 | 0;
   37741           1 : }
   37742           3 : function _luaF_freeupval(i1, i3) {
   37743           3 :  i1 = i1 | 0;
   37744           3 :  i3 = i3 | 0;
   37745           3 :  var i2 = 0, i4 = 0, i5 = 0;
   37746           3 :  i2 = STACKTOP;
   37747           3 :  if ((HEAP32[i3 + 8 >> 2] | 0) == (i3 + 16 | 0)) {
   37748           3 :   _luaM_realloc_(i1, i3, 32, 0) | 0;
   37749           3 :   STACKTOP = i2;
   37750           3 :   return;
   37751           3 :  }
   37752           3 :  i4 = i3 + 16 | 0;
   37753           3 :  i5 = i4 + 4 | 0;
   37754           3 :  HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] = HEAP32[i4 >> 2];
   37755           3 :  HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] = HEAP32[i5 >> 2];
   37756           3 :  _luaM_realloc_(i1, i3, 32, 0) | 0;
   37757           3 :  STACKTOP = i2;
   37758           3 :  return;
   37759           3 : }
   37760           1 : function _luaL_addvalue(i1) {
   37761           0 :  i1 = i1 | 0;
   37762           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   37763           0 :  i2 = STACKTOP;
   37764           0 :  STACKTOP = STACKTOP + 16 | 0;
   37765           0 :  i4 = i2;
   37766           0 :  i5 = HEAP32[i1 + 12 >> 2] | 0;
   37767           0 :  i3 = _lua_tolstring(i5, -1, i4) | 0;
   37768           0 :  i6 = i1 + 16 | 0;
   37769           0 :  if ((HEAP32[i1 >> 2] | 0) != (i6 | 0)) {
   37770           0 :   _lua_insert(i5, -2);
   37771           0 :  }
   37772           0 :  _luaL_addlstring(i1, i3, HEAP32[i4 >> 2] | 0);
   37773           0 :  _lua_remove(i5, (HEAP32[i1 >> 2] | 0) != (i6 | 0) ? -2 : -1);
   37774           0 :  STACKTOP = i2;
   37775           0 :  return;
   37776           1 : }
   37777           1 : function _escerror(i1, i4, i3, i2) {
   37778           0 :  i1 = i1 | 0;
   37779           0 :  i4 = i4 | 0;
   37780           0 :  i3 = i3 | 0;
   37781           0 :  i2 = i2 | 0;
   37782           0 :  var i5 = 0, i6 = 0;
   37783           0 :  HEAP32[(HEAP32[i1 + 60 >> 2] | 0) + 4 >> 2] = 0;
   37784           0 :  _save(i1, 92);
   37785           0 :  L1 : do {
   37786           0 :   if ((i3 | 0) > 0) {
   37787           0 :    i5 = 0;
   37788           0 :    do {
   37789           0 :     i6 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
   37790           0 :     if ((i6 | 0) == -1) {
   37791           0 :      break L1;
   37792           0 :     }
   37793           0 :     _save(i1, i6);
   37794           0 :     i5 = i5 + 1 | 0;
   37795           0 :    } while ((i5 | 0) < (i3 | 0));
   37796           0 :   }
   37797           0 :  } while (0);
   37798           0 :  _lexerror(i1, i2, 289);
   37799           1 : }
   37800           1 : function _pushglobalfuncname(i1, i4) {
   37801           0 :  i1 = i1 | 0;
   37802           0 :  i4 = i4 | 0;
   37803           0 :  var i2 = 0, i3 = 0;
   37804           0 :  i2 = STACKTOP;
   37805           0 :  i3 = _lua_gettop(i1) | 0;
   37806           0 :  _lua_getinfo(i1, 1768, i4) | 0;
   37807           0 :  _lua_rawgeti(i1, -1001e3, 2);
   37808           0 :  i4 = i3 + 1 | 0;
   37809           0 :  if ((_findfield(i1, i4, 2) | 0) == 0) {
   37810           0 :   _lua_settop(i1, i3);
   37811           0 :   i4 = 0;
   37812           0 :   STACKTOP = i2;
   37813           0 :   return i4 | 0;
   37814           0 :  } else {
   37815           0 :   _lua_copy(i1, -1, i4);
   37816           0 :   _lua_settop(i1, -3);
   37817           0 :   i4 = 1;
   37818           0 :   STACKTOP = i2;
   37819           0 :   return i4 | 0;
   37820           0 :  }
   37821           0 :  return 0;
   37822           1 : }
   37823           1 : function copyTempDouble(i1) {
   37824           0 :  i1 = i1 | 0;
   37825           0 :  HEAP8[tempDoublePtr] = HEAP8[i1];
   37826           0 :  HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
   37827           0 :  HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
   37828           0 :  HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
   37829           0 :  HEAP8[tempDoublePtr + 4 | 0] = HEAP8[i1 + 4 | 0];
   37830           0 :  HEAP8[tempDoublePtr + 5 | 0] = HEAP8[i1 + 5 | 0];
   37831           0 :  HEAP8[tempDoublePtr + 6 | 0] = HEAP8[i1 + 6 | 0];
   37832           0 :  HEAP8[tempDoublePtr + 7 | 0] = HEAP8[i1 + 7 | 0];
   37833           1 : }
   37834          11 : function _lua_pushlstring(i1, i3, i4) {
   37835          11 :  i1 = i1 | 0;
   37836          11 :  i3 = i3 | 0;
   37837          11 :  i4 = i4 | 0;
   37838          11 :  var i2 = 0;
   37839          11 :  i2 = STACKTOP;
   37840          11 :  if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   37841          11 :   _luaC_step(i1);
   37842          11 :  }
   37843          11 :  i4 = _luaS_newlstr(i1, i3, i4) | 0;
   37844          11 :  i3 = i1 + 8 | 0;
   37845          11 :  i1 = HEAP32[i3 >> 2] | 0;
   37846          11 :  HEAP32[i1 >> 2] = i4;
   37847          11 :  HEAP32[i1 + 8 >> 2] = HEAPU8[i4 + 4 | 0] | 0 | 64;
   37848          11 :  HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 16;
   37849          11 :  STACKTOP = i2;
   37850          11 :  return i4 + 16 | 0;
   37851          11 : }
   37852           1 : function _ll_searchpath(i1) {
   37853           0 :  i1 = i1 | 0;
   37854           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   37855           0 :  i2 = STACKTOP;
   37856           0 :  i5 = _luaL_checklstring(i1, 1, 0) | 0;
   37857           0 :  i4 = _luaL_checklstring(i1, 2, 0) | 0;
   37858           0 :  i3 = _luaL_optlstring(i1, 3, 4936, 0) | 0;
   37859           0 :  if ((_searchpath(i1, i5, i4, i3, _luaL_optlstring(i1, 4, 4848, 0) | 0) | 0) != 0) {
   37860           0 :   i5 = 1;
   37861           0 :   STACKTOP = i2;
   37862           0 :   return i5 | 0;
   37863           0 :  }
   37864           0 :  _lua_pushnil(i1);
   37865           0 :  _lua_insert(i1, -2);
   37866           0 :  i5 = 2;
   37867           0 :  STACKTOP = i2;
   37868           0 :  return i5 | 0;
   37869           1 : }
   37870           1 : function _math_log(i1) {
   37871           0 :  i1 = i1 | 0;
   37872           0 :  var i2 = 0, d3 = 0.0, d4 = 0.0;
   37873           0 :  i2 = STACKTOP;
   37874           0 :  d3 = +_luaL_checknumber(i1, 1);
   37875           0 :  do {
   37876           0 :   if ((_lua_type(i1, 2) | 0) >= 1) {
   37877           0 :    d4 = +_luaL_checknumber(i1, 2);
   37878           0 :    if (d4 == 10.0) {
   37879           0 :     d3 = +_log10(+d3);
   37880           0 :     break;
   37881           0 :    } else {
   37882           0 :     d3 = +Math_log(+d3) / +Math_log(+d4);
   37883           0 :     break;
   37884           0 :    }
   37885           0 :   } else {
   37886           0 :    d3 = +Math_log(+d3);
   37887           0 :   }
   37888           0 :  } while (0);
   37889           0 :  _lua_pushnumber(i1, d3);
   37890           0 :  STACKTOP = i2;
   37891           0 :  return 1;
   37892           1 : }
   37893           1 : function _luaT_init(i1) {
   37894           1 :  i1 = i1 | 0;
   37895           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   37896           1 :  i2 = STACKTOP;
   37897           1 :  i3 = i1 + 12 | 0;
   37898           1 :  i4 = 0;
   37899           1 :  do {
   37900           1 :   i5 = _luaS_new(i1, HEAP32[8576 + (i4 << 2) >> 2] | 0) | 0;
   37901           1 :   HEAP32[(HEAP32[i3 >> 2] | 0) + (i4 << 2) + 184 >> 2] = i5;
   37902           1 :   i5 = (HEAP32[(HEAP32[i3 >> 2] | 0) + (i4 << 2) + 184 >> 2] | 0) + 5 | 0;
   37903           1 :   HEAP8[i5] = HEAPU8[i5] | 0 | 32;
   37904           1 :   i4 = i4 + 1 | 0;
   37905           1 :  } while ((i4 | 0) != 17);
   37906           1 :  STACKTOP = i2;
   37907           1 :  return;
   37908           1 : }
   37909           3 : function _f_gc(i1) {
   37910           3 :  i1 = i1 | 0;
   37911           3 :  var i2 = 0, i3 = 0, i4 = 0;
   37912           3 :  i2 = STACKTOP;
   37913           3 :  i3 = _luaL_checkudata(i1, 1, 2832) | 0;
   37914           3 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   37915           3 :   STACKTOP = i2;
   37916           3 :   return 0;
   37917           3 :  }
   37918           3 :  if ((HEAP32[i3 >> 2] | 0) == 0) {
   37919           3 :   STACKTOP = i2;
   37920           3 :   return 0;
   37921           3 :  }
   37922           3 :  i4 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0;
   37923           3 :  i3 = HEAP32[i4 >> 2] | 0;
   37924           3 :  HEAP32[i4 >> 2] = 0;
   37925           3 :  FUNCTION_TABLE_ii[i3 & 255](i1) | 0;
   37926           3 :  STACKTOP = i2;
   37927           3 :  return 0;
   37928           3 : }
   37929          35 : function ___shlim(i1, i5) {
   37930          35 :  i1 = i1 | 0;
   37931          35 :  i5 = i5 | 0;
   37932          35 :  var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
   37933          35 :  i2 = STACKTOP;
   37934          35 :  HEAP32[i1 + 104 >> 2] = i5;
   37935          35 :  i4 = HEAP32[i1 + 8 >> 2] | 0;
   37936          35 :  i3 = HEAP32[i1 + 4 >> 2] | 0;
   37937          35 :  i6 = i4 - i3 | 0;
   37938          35 :  HEAP32[i1 + 108 >> 2] = i6;
   37939          35 :  if ((i5 | 0) != 0 & (i6 | 0) > (i5 | 0)) {
   37940          35 :   HEAP32[i1 + 100 >> 2] = i3 + i5;
   37941          35 :   STACKTOP = i2;
   37942          35 :   return;
   37943          35 :  } else {
   37944          35 :   HEAP32[i1 + 100 >> 2] = i4;
   37945          35 :   STACKTOP = i2;
   37946          35 :   return;
   37947          35 :  }
   37948          35 : }
   37949           1 : function _lua_sethook(i4, i6, i1, i5) {
   37950           0 :  i4 = i4 | 0;
   37951           0 :  i6 = i6 | 0;
   37952           0 :  i1 = i1 | 0;
   37953           0 :  i5 = i5 | 0;
   37954           0 :  var i2 = 0, i3 = 0;
   37955           0 :  i2 = (i6 | 0) == 0 | (i1 | 0) == 0;
   37956           0 :  i3 = HEAP32[i4 + 16 >> 2] | 0;
   37957           0 :  if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) {
   37958           0 :   HEAP32[i4 + 20 >> 2] = HEAP32[i3 + 28 >> 2];
   37959           0 :  }
   37960           0 :  HEAP32[i4 + 52 >> 2] = i2 ? 0 : i6;
   37961           0 :  HEAP32[i4 + 44 >> 2] = i5;
   37962           0 :  HEAP32[i4 + 48 >> 2] = i5;
   37963           0 :  HEAP8[i4 + 40 | 0] = i2 ? 0 : i1 & 255;
   37964           0 :  return 1;
   37965           1 : }
   37966           1 : function _io_tmpfile(i1) {
   37967           0 :  i1 = i1 | 0;
   37968           0 :  var i2 = 0, i3 = 0, i4 = 0;
   37969           0 :  i2 = STACKTOP;
   37970           0 :  i4 = _lua_newuserdata(i1, 8) | 0;
   37971           0 :  i3 = i4 + 4 | 0;
   37972           0 :  HEAP32[i3 >> 2] = 0;
   37973           0 :  _luaL_setmetatable(i1, 2832);
   37974           0 :  HEAP32[i4 >> 2] = 0;
   37975           0 :  HEAP32[i3 >> 2] = 156;
   37976           0 :  i3 = _tmpfile() | 0;
   37977           0 :  HEAP32[i4 >> 2] = i3;
   37978           0 :  if ((i3 | 0) != 0) {
   37979           0 :   i4 = 1;
   37980           0 :   STACKTOP = i2;
   37981           0 :   return i4 | 0;
   37982           0 :  }
   37983           0 :  i4 = _luaL_fileresult(i1, 0, 0) | 0;
   37984           0 :  STACKTOP = i2;
   37985           0 :  return i4 | 0;
   37986           1 : }
   37987           1 : function _luaL_checkstack(i1, i5, i4) {
   37988           1 :  i1 = i1 | 0;
   37989           1 :  i5 = i5 | 0;
   37990           1 :  i4 = i4 | 0;
   37991           1 :  var i2 = 0, i3 = 0;
   37992           1 :  i2 = STACKTOP;
   37993           1 :  STACKTOP = STACKTOP + 16 | 0;
   37994           1 :  i3 = i2;
   37995           1 :  if ((_lua_checkstack(i1, i5 + 20 | 0) | 0) != 0) {
   37996           1 :   STACKTOP = i2;
   37997           1 :   return;
   37998           1 :  }
   37999           1 :  if ((i4 | 0) == 0) {
   38000           1 :   _luaL_error(i1, 1240, i3) | 0;
   38001           1 :   STACKTOP = i2;
   38002           1 :   return;
   38003           1 :  } else {
   38004           1 :   HEAP32[i3 >> 2] = i4;
   38005           1 :   _luaL_error(i1, 1216, i3) | 0;
   38006           1 :   STACKTOP = i2;
   38007           1 :   return;
   38008           1 :  }
   38009           1 : }
   38010           1 : function _b_rshift(i1) {
   38011           0 :  i1 = i1 | 0;
   38012           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   38013           0 :  i2 = STACKTOP;
   38014           0 :  i4 = _luaL_checkunsigned(i1, 1) | 0;
   38015           0 :  i3 = _luaL_checkinteger(i1, 2) | 0;
   38016           0 :  i5 = 0 - i3 | 0;
   38017           0 :  if ((i3 | 0) > 0) {
   38018           0 :   i5 = (i3 | 0) > 31 ? 0 : i4 >>> i3;
   38019           0 :   _lua_pushunsigned(i1, i5);
   38020           0 :   STACKTOP = i2;
   38021           0 :   return 1;
   38022           0 :  } else {
   38023           0 :   i5 = (i5 | 0) > 31 ? 0 : i4 << i5;
   38024           0 :   _lua_pushunsigned(i1, i5);
   38025           0 :   STACKTOP = i2;
   38026           0 :   return 1;
   38027           0 :  }
   38028           0 :  return 0;
   38029           1 : }
   38030           1 : function _b_lshift(i1) {
   38031           0 :  i1 = i1 | 0;
   38032           0 :  var i2 = 0, i3 = 0, i4 = 0;
   38033           0 :  i2 = STACKTOP;
   38034           0 :  i3 = _luaL_checkunsigned(i1, 1) | 0;
   38035           0 :  i4 = _luaL_checkinteger(i1, 2) | 0;
   38036           0 :  if ((i4 | 0) < 0) {
   38037           0 :   i4 = 0 - i4 | 0;
   38038           0 :   i4 = (i4 | 0) > 31 ? 0 : i3 >>> i4;
   38039           0 :   _lua_pushunsigned(i1, i4);
   38040           0 :   STACKTOP = i2;
   38041           0 :   return 1;
   38042           0 :  } else {
   38043           0 :   i4 = (i4 | 0) > 31 ? 0 : i3 << i4;
   38044           0 :   _lua_pushunsigned(i1, i4);
   38045           0 :   STACKTOP = i2;
   38046           0 :   return 1;
   38047           0 :  }
   38048           0 :  return 0;
   38049           1 : }
   38050           1 : function _math_min(i1) {
   38051           0 :  i1 = i1 | 0;
   38052           0 :  var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0;
   38053           0 :  i2 = STACKTOP;
   38054           0 :  i3 = _lua_gettop(i1) | 0;
   38055           0 :  d5 = +_luaL_checknumber(i1, 1);
   38056           0 :  if ((i3 | 0) >= 2) {
   38057           0 :   i4 = 2;
   38058           0 :   while (1) {
   38059           0 :    d6 = +_luaL_checknumber(i1, i4);
   38060           0 :    d5 = d6 < d5 ? d6 : d5;
   38061           0 :    if ((i4 | 0) == (i3 | 0)) {
   38062           0 :     break;
   38063           0 :    } else {
   38064           0 :     i4 = i4 + 1 | 0;
   38065           0 :    }
   38066           0 :   }
   38067           0 :  }
   38068           0 :  _lua_pushnumber(i1, d5);
   38069           0 :  STACKTOP = i2;
   38070           0 :  return 1;
   38071           1 : }
   38072           1 : function _math_max(i1) {
   38073           0 :  i1 = i1 | 0;
   38074           0 :  var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0;
   38075           0 :  i2 = STACKTOP;
   38076           0 :  i3 = _lua_gettop(i1) | 0;
   38077           0 :  d5 = +_luaL_checknumber(i1, 1);
   38078           0 :  if ((i3 | 0) >= 2) {
   38079           0 :   i4 = 2;
   38080           0 :   while (1) {
   38081           0 :    d6 = +_luaL_checknumber(i1, i4);
   38082           0 :    d5 = d6 > d5 ? d6 : d5;
   38083           0 :    if ((i4 | 0) == (i3 | 0)) {
   38084           0 :     break;
   38085           0 :    } else {
   38086           0 :     i4 = i4 + 1 | 0;
   38087           0 :    }
   38088           0 :   }
   38089           0 :  }
   38090           0 :  _lua_pushnumber(i1, d5);
   38091           0 :  STACKTOP = i2;
   38092           0 :  return 1;
   38093           1 : }
   38094           1 : function _io_type(i1) {
   38095           0 :  i1 = i1 | 0;
   38096           0 :  var i2 = 0, i3 = 0;
   38097           0 :  i2 = STACKTOP;
   38098           0 :  _luaL_checkany(i1, 1);
   38099           0 :  i3 = _luaL_testudata(i1, 1, 2832) | 0;
   38100           0 :  if ((i3 | 0) == 0) {
   38101           0 :   _lua_pushnil(i1);
   38102           0 :   STACKTOP = i2;
   38103           0 :   return 1;
   38104           0 :  }
   38105           0 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   38106           0 :   _lua_pushlstring(i1, 3456, 11) | 0;
   38107           0 :   STACKTOP = i2;
   38108           0 :   return 1;
   38109           0 :  } else {
   38110           0 :   _lua_pushlstring(i1, 3472, 4) | 0;
   38111           0 :   STACKTOP = i2;
   38112           0 :   return 1;
   38113           0 :  }
   38114           0 :  return 0;
   38115           1 : }
   38116           3 : function _luaF_newLclosure(i3, i2) {
   38117           3 :  i3 = i3 | 0;
   38118           3 :  i2 = i2 | 0;
   38119           3 :  var i1 = 0, i4 = 0;
   38120           3 :  i1 = STACKTOP;
   38121           3 :  i3 = _luaC_newobj(i3, 6, (i2 << 2) + 16 | 0, 0, 0) | 0;
   38122           3 :  HEAP32[i3 + 12 >> 2] = 0;
   38123           3 :  HEAP8[i3 + 6 | 0] = i2;
   38124           3 :  if ((i2 | 0) == 0) {
   38125           3 :   STACKTOP = i1;
   38126           3 :   return i3 | 0;
   38127           3 :  }
   38128           3 :  i4 = i3 + 16 | 0;
   38129           3 :  do {
   38130           3 :   i2 = i2 + -1 | 0;
   38131           3 :   HEAP32[i4 + (i2 << 2) >> 2] = 0;
   38132           3 :  } while ((i2 | 0) != 0);
   38133           3 :  STACKTOP = i1;
   38134           3 :  return i3 | 0;
   38135           3 : }
   38136           1 : function _io_flush(i1) {
   38137           0 :  i1 = i1 | 0;
   38138           0 :  var i2 = 0, i3 = 0, i4 = 0;
   38139           0 :  i2 = STACKTOP;
   38140           0 :  STACKTOP = STACKTOP + 16 | 0;
   38141           0 :  i4 = i2;
   38142           0 :  _lua_getfield(i1, -1001e3, 2800);
   38143           0 :  i3 = _lua_touserdata(i1, -1) | 0;
   38144           0 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   38145           0 :   HEAP32[i4 >> 2] = 2804;
   38146           0 :   _luaL_error(i1, 3424, i4) | 0;
   38147           0 :  }
   38148           0 :  i4 = _luaL_fileresult(i1, (_fflush(HEAP32[i3 >> 2] | 0) | 0) == 0 | 0, 0) | 0;
   38149           0 :  STACKTOP = i2;
   38150           0 :  return i4 | 0;
   38151           1 : }
   38152           1 : function _b_test(i1) {
   38153           0 :  i1 = i1 | 0;
   38154           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   38155           0 :  i2 = STACKTOP;
   38156           0 :  i3 = _lua_gettop(i1) | 0;
   38157           0 :  if ((i3 | 0) < 1) {
   38158           0 :   i3 = 1;
   38159           0 :  } else {
   38160           0 :   i4 = 1;
   38161           0 :   i5 = -1;
   38162           0 :   while (1) {
   38163           0 :    i5 = (_luaL_checkunsigned(i1, i4) | 0) & i5;
   38164           0 :    if ((i4 | 0) == (i3 | 0)) {
   38165           0 :     break;
   38166           0 :    } else {
   38167           0 :     i4 = i4 + 1 | 0;
   38168           0 :    }
   38169           0 :   }
   38170           0 :   i3 = (i5 | 0) != 0;
   38171           0 :  }
   38172           0 :  _lua_pushboolean(i1, i3 & 1);
   38173           0 :  STACKTOP = i2;
   38174           0 :  return 1;
   38175           1 : }
   38176           1 : function ___muldsi3(i2, i1) {
   38177           0 :  i2 = i2 | 0;
   38178           0 :  i1 = i1 | 0;
   38179           0 :  var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
   38180           0 :  i6 = i2 & 65535;
   38181           0 :  i4 = i1 & 65535;
   38182           0 :  i3 = Math_imul(i4, i6) | 0;
   38183           0 :  i5 = i2 >>> 16;
   38184           0 :  i4 = (i3 >>> 16) + (Math_imul(i4, i5) | 0) | 0;
   38185           0 :  i1 = i1 >>> 16;
   38186           0 :  i2 = Math_imul(i1, i6) | 0;
   38187           0 :  return (tempRet0 = (i4 >>> 16) + (Math_imul(i1, i5) | 0) + (((i4 & 65535) + i2 | 0) >>> 16) | 0, i4 + i2 << 16 | i3 & 65535 | 0) | 0;
   38188           1 : }
   38189           1 : function _str_dump(i1) {
   38190           0 :  i1 = i1 | 0;
   38191           0 :  var i2 = 0, i3 = 0;
   38192           0 :  i2 = STACKTOP;
   38193           0 :  STACKTOP = STACKTOP + 1056 | 0;
   38194           0 :  i3 = i2 + 8 | 0;
   38195           0 :  _luaL_checktype(i1, 1, 6);
   38196           0 :  _lua_settop(i1, 1);
   38197           0 :  _luaL_buffinit(i1, i3);
   38198           0 :  if ((_lua_dump(i1, 2, i3) | 0) == 0) {
   38199           0 :   _luaL_pushresult(i3);
   38200           0 :   i3 = 1;
   38201           0 :   STACKTOP = i2;
   38202           0 :   return i3 | 0;
   38203           0 :  } else {
   38204           0 :   i3 = _luaL_error(i1, 7888, i2) | 0;
   38205           0 :   STACKTOP = i2;
   38206           0 :   return i3 | 0;
   38207           0 :  }
   38208           0 :  return 0;
   38209           1 : }
   38210           1 : function ___memrchr(i2, i3, i5) {
   38211           0 :  i2 = i2 | 0;
   38212           0 :  i3 = i3 | 0;
   38213           0 :  i5 = i5 | 0;
   38214           0 :  var i1 = 0, i4 = 0;
   38215           0 :  i1 = STACKTOP;
   38216           0 :  i3 = i3 & 255;
   38217           0 :  while (1) {
   38218           0 :   i4 = i5 + -1 | 0;
   38219           0 :   if ((i5 | 0) == 0) {
   38220           0 :    i5 = 0;
   38221           0 :    i2 = 4;
   38222           0 :    break;
   38223           0 :   }
   38224           0 :   i5 = i2 + i4 | 0;
   38225           0 :   if ((HEAP8[i5] | 0) == i3 << 24 >> 24) {
   38226           0 :    i2 = 4;
   38227           0 :    break;
   38228           0 :   } else {
   38229           0 :    i5 = i4;
   38230           0 :   }
   38231           0 :  }
   38232           0 :  if ((i2 | 0) == 4) {
   38233           0 :   STACKTOP = i1;
   38234           0 :   return i5 | 0;
   38235           0 :  }
   38236           0 :  return 0;
   38237           1 : }
   38238          14 : function _luaL_getsubtable(i1, i3, i4) {
   38239          14 :  i1 = i1 | 0;
   38240          14 :  i3 = i3 | 0;
   38241          14 :  i4 = i4 | 0;
   38242          14 :  var i2 = 0;
   38243          14 :  i2 = STACKTOP;
   38244          14 :  _lua_getfield(i1, i3, i4);
   38245          14 :  if ((_lua_type(i1, -1) | 0) == 5) {
   38246          14 :   i4 = 1;
   38247          14 :   STACKTOP = i2;
   38248          14 :   return i4 | 0;
   38249          14 :  }
   38250          14 :  _lua_settop(i1, -2);
   38251          14 :  i3 = _lua_absindex(i1, i3) | 0;
   38252          14 :  _lua_createtable(i1, 0, 0);
   38253          14 :  _lua_pushvalue(i1, -1);
   38254          14 :  _lua_setfield(i1, i3, i4);
   38255          14 :  i4 = 0;
   38256          14 :  STACKTOP = i2;
   38257          14 :  return i4 | 0;
   38258          14 : }
   38259          22 : function _luaE_freeCI(i1) {
   38260          22 :  i1 = i1 | 0;
   38261          22 :  var i2 = 0, i3 = 0, i4 = 0;
   38262          22 :  i2 = STACKTOP;
   38263          22 :  i4 = (HEAP32[i1 + 16 >> 2] | 0) + 12 | 0;
   38264          22 :  i3 = HEAP32[i4 >> 2] | 0;
   38265          22 :  HEAP32[i4 >> 2] = 0;
   38266          22 :  if ((i3 | 0) == 0) {
   38267          22 :   STACKTOP = i2;
   38268          22 :   return;
   38269          22 :  }
   38270          22 :  while (1) {
   38271          22 :   i4 = HEAP32[i3 + 12 >> 2] | 0;
   38272          22 :   _luaM_realloc_(i1, i3, 40, 0) | 0;
   38273          22 :   if ((i4 | 0) == 0) {
   38274          22 :    break;
   38275          22 :   } else {
   38276          22 :    i3 = i4;
   38277          22 :   }
   38278          22 :  }
   38279          22 :  STACKTOP = i2;
   38280          22 :  return;
   38281          22 : }
   38282           1 : function _f_tostring(i1) {
   38283           0 :  i1 = i1 | 0;
   38284           0 :  var i2 = 0, i3 = 0, i4 = 0;
   38285           0 :  i2 = STACKTOP;
   38286           0 :  STACKTOP = STACKTOP + 16 | 0;
   38287           0 :  i3 = i2;
   38288           0 :  i4 = _luaL_checkudata(i1, 1, 2832) | 0;
   38289           0 :  if ((HEAP32[i4 + 4 >> 2] | 0) == 0) {
   38290           0 :   _lua_pushlstring(i1, 3040, 13) | 0;
   38291           0 :   STACKTOP = i2;
   38292           0 :   return 1;
   38293           0 :  } else {
   38294           0 :   HEAP32[i3 >> 2] = HEAP32[i4 >> 2];
   38295           0 :   _lua_pushfstring(i1, 3056, i3) | 0;
   38296           0 :   STACKTOP = i2;
   38297           0 :   return 1;
   38298           0 :  }
   38299           0 :  return 0;
   38300           1 : }
   38301           3 : function _lua_newuserdata(i1, i3) {
   38302           3 :  i1 = i1 | 0;
   38303           3 :  i3 = i3 | 0;
   38304           3 :  var i2 = 0, i4 = 0;
   38305           3 :  i2 = STACKTOP;
   38306           3 :  if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   38307           3 :   _luaC_step(i1);
   38308           3 :  }
   38309           3 :  i3 = _luaS_newudata(i1, i3, 0) | 0;
   38310           3 :  i1 = i1 + 8 | 0;
   38311           3 :  i4 = HEAP32[i1 >> 2] | 0;
   38312           3 :  HEAP32[i4 >> 2] = i3;
   38313           3 :  HEAP32[i4 + 8 >> 2] = 71;
   38314           3 :  HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 16;
   38315           3 :  STACKTOP = i2;
   38316           3 :  return i3 + 24 | 0;
   38317           3 : }
   38318           1 : function _luaL_pushresultsize(i1, i3) {
   38319           0 :  i1 = i1 | 0;
   38320           0 :  i3 = i3 | 0;
   38321           0 :  var i2 = 0, i4 = 0, i5 = 0;
   38322           0 :  i2 = STACKTOP;
   38323           0 :  i5 = i1 + 8 | 0;
   38324           0 :  i4 = (HEAP32[i5 >> 2] | 0) + i3 | 0;
   38325           0 :  HEAP32[i5 >> 2] = i4;
   38326           0 :  i3 = HEAP32[i1 + 12 >> 2] | 0;
   38327           0 :  _lua_pushlstring(i3, HEAP32[i1 >> 2] | 0, i4) | 0;
   38328           0 :  if ((HEAP32[i1 >> 2] | 0) == (i1 + 16 | 0)) {
   38329           0 :   STACKTOP = i2;
   38330           0 :   return;
   38331           0 :  }
   38332           0 :  _lua_remove(i3, -2);
   38333           0 :  STACKTOP = i2;
   38334           0 :  return;
   38335           1 : }
   38336           1 : function _luaL_testudata(i2, i5, i4) {
   38337           0 :  i2 = i2 | 0;
   38338           0 :  i5 = i5 | 0;
   38339           0 :  i4 = i4 | 0;
   38340           0 :  var i1 = 0, i3 = 0;
   38341           0 :  i1 = STACKTOP;
   38342           0 :  i3 = _lua_touserdata(i2, i5) | 0;
   38343           0 :  if ((i3 | 0) != 0 ? (_lua_getmetatable(i2, i5) | 0) != 0 : 0) {
   38344           0 :   _lua_getfield(i2, -1001e3, i4);
   38345           0 :   i5 = (_lua_rawequal(i2, -1, -2) | 0) == 0;
   38346           0 :   _lua_settop(i2, -3);
   38347           0 :   i2 = i5 ? 0 : i3;
   38348           0 :  } else {
   38349           0 :   i2 = 0;
   38350           0 :  }
   38351           0 :  STACKTOP = i1;
   38352           0 :  return i2 | 0;
   38353           1 : }
   38354           1 : function _finishpcall(i1, i3) {
   38355           0 :  i1 = i1 | 0;
   38356           0 :  i3 = i3 | 0;
   38357           0 :  var i2 = 0;
   38358           0 :  i2 = STACKTOP;
   38359           0 :  if ((_lua_checkstack(i1, 1) | 0) == 0) {
   38360           0 :   _lua_settop(i1, 0);
   38361           0 :   _lua_pushboolean(i1, 0);
   38362           0 :   _lua_pushstring(i1, 9632) | 0;
   38363           0 :   i3 = 2;
   38364           0 :   STACKTOP = i2;
   38365           0 :   return i3 | 0;
   38366           0 :  } else {
   38367           0 :   _lua_pushboolean(i1, i3);
   38368           0 :   _lua_replace(i1, 1);
   38369           0 :   i3 = _lua_gettop(i1) | 0;
   38370           0 :   STACKTOP = i2;
   38371           0 :   return i3 | 0;
   38372           0 :  }
   38373           0 :  return 0;
   38374           1 : }
   38375           1 : function _searcher_preload(i1) {
   38376           0 :  i1 = i1 | 0;
   38377           0 :  var i2 = 0, i3 = 0, i4 = 0;
   38378           0 :  i2 = STACKTOP;
   38379           0 :  STACKTOP = STACKTOP + 16 | 0;
   38380           0 :  i4 = i2;
   38381           0 :  i3 = _luaL_checklstring(i1, 1, 0) | 0;
   38382           0 :  _lua_getfield(i1, -1001e3, 4592);
   38383           0 :  _lua_getfield(i1, -1, i3);
   38384           0 :  if ((_lua_type(i1, -1) | 0) != 0) {
   38385           0 :   STACKTOP = i2;
   38386           0 :   return 1;
   38387           0 :  }
   38388           0 :  HEAP32[i4 >> 2] = i3;
   38389           0 :  _lua_pushfstring(i1, 5096, i4) | 0;
   38390           0 :  STACKTOP = i2;
   38391           0 :  return 1;
   38392           1 : }
   38393           1 : function _luaB_auxwrap(i1) {
   38394           0 :  i1 = i1 | 0;
   38395           0 :  var i2 = 0, i3 = 0;
   38396           0 :  i3 = STACKTOP;
   38397           0 :  i2 = _lua_tothread(i1, -1001001) | 0;
   38398           0 :  i2 = _auxresume(i1, i2, _lua_gettop(i1) | 0) | 0;
   38399           0 :  if ((i2 | 0) >= 0) {
   38400           0 :   STACKTOP = i3;
   38401           0 :   return i2 | 0;
   38402           0 :  }
   38403           0 :  if ((_lua_isstring(i1, -1) | 0) == 0) {
   38404           0 :   _lua_error(i1) | 0;
   38405           0 :  }
   38406           0 :  _luaL_where(i1, 1);
   38407           0 :  _lua_insert(i1, -2);
   38408           0 :  _lua_concat(i1, 2);
   38409           0 :  _lua_error(i1) | 0;
   38410           0 :  return 0;
   38411           1 : }
   38412           1 : function _ll_loadlib(i1) {
   38413           0 :  i1 = i1 | 0;
   38414           0 :  var i2 = 0, i3 = 0;
   38415           0 :  i2 = STACKTOP;
   38416           0 :  i3 = _luaL_checklstring(i1, 1, 0) | 0;
   38417           0 :  i3 = _ll_loadfunc(i1, i3, _luaL_checklstring(i1, 2, 0) | 0) | 0;
   38418           0 :  if ((i3 | 0) == 0) {
   38419           0 :   i3 = 1;
   38420           0 :   STACKTOP = i2;
   38421           0 :   return i3 | 0;
   38422           0 :  }
   38423           0 :  _lua_pushnil(i1);
   38424           0 :  _lua_insert(i1, -2);
   38425           0 :  _lua_pushstring(i1, (i3 | 0) == 1 ? 5176 : 5184) | 0;
   38426           0 :  i3 = 3;
   38427           0 :  STACKTOP = i2;
   38428           0 :  return i3 | 0;
   38429           1 : }
   38430           1 : function _luaS_hash(i2, i4, i3) {
   38431           1 :  i2 = i2 | 0;
   38432           1 :  i4 = i4 | 0;
   38433           1 :  i3 = i3 | 0;
   38434           1 :  var i1 = 0, i5 = 0;
   38435           1 :  i1 = STACKTOP;
   38436           1 :  i5 = i3 ^ i4;
   38437           1 :  i3 = (i4 >>> 5) + 1 | 0;
   38438           1 :  if (i3 >>> 0 > i4 >>> 0) {
   38439           1 :   STACKTOP = i1;
   38440           1 :   return i5 | 0;
   38441           1 :  }
   38442           1 :  do {
   38443           1 :   i5 = (i5 << 5) + (i5 >>> 2) + (HEAPU8[i2 + (i4 + -1) | 0] | 0) ^ i5;
   38444           1 :   i4 = i4 - i3 | 0;
   38445           1 :  } while (!(i4 >>> 0 < i3 >>> 0));
   38446           1 :  STACKTOP = i1;
   38447           1 :  return i5 | 0;
   38448           1 : }
   38449           1 : function _b_and(i1) {
   38450           0 :  i1 = i1 | 0;
   38451           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   38452           0 :  i2 = STACKTOP;
   38453           0 :  i3 = _lua_gettop(i1) | 0;
   38454           0 :  if ((i3 | 0) < 1) {
   38455           0 :   i5 = -1;
   38456           0 :  } else {
   38457           0 :   i4 = 1;
   38458           0 :   i5 = -1;
   38459           0 :   while (1) {
   38460           0 :    i5 = (_luaL_checkunsigned(i1, i4) | 0) & i5;
   38461           0 :    if ((i4 | 0) == (i3 | 0)) {
   38462           0 :     break;
   38463           0 :    } else {
   38464           0 :     i4 = i4 + 1 | 0;
   38465           0 :    }
   38466           0 :   }
   38467           0 :  }
   38468           0 :  _lua_pushunsigned(i1, i5);
   38469           0 :  STACKTOP = i2;
   38470           0 :  return 1;
   38471           1 : }
   38472           1 : function _luaopen_string(i1) {
   38473           1 :  i1 = i1 | 0;
   38474           1 :  var i2 = 0;
   38475           1 :  i2 = STACKTOP;
   38476           1 :  _lua_createtable(i1, 0, 14);
   38477           1 :  _luaL_setfuncs(i1, 6920, 0);
   38478           1 :  _lua_createtable(i1, 0, 1);
   38479           1 :  _lua_pushlstring(i1, 7040, 0) | 0;
   38480           1 :  _lua_pushvalue(i1, -2);
   38481           1 :  _lua_setmetatable(i1, -2) | 0;
   38482           1 :  _lua_settop(i1, -2);
   38483           1 :  _lua_pushvalue(i1, -2);
   38484           1 :  _lua_setfield(i1, -2, 7048);
   38485           1 :  _lua_settop(i1, -2);
   38486           1 :  STACKTOP = i2;
   38487           1 :  return 1;
   38488           1 : }
   38489           1 : function _b_xor(i1) {
   38490           0 :  i1 = i1 | 0;
   38491           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   38492           0 :  i2 = STACKTOP;
   38493           0 :  i3 = _lua_gettop(i1) | 0;
   38494           0 :  if ((i3 | 0) < 1) {
   38495           0 :   i5 = 0;
   38496           0 :  } else {
   38497           0 :   i4 = 1;
   38498           0 :   i5 = 0;
   38499           0 :   while (1) {
   38500           0 :    i5 = (_luaL_checkunsigned(i1, i4) | 0) ^ i5;
   38501           0 :    if ((i4 | 0) == (i3 | 0)) {
   38502           0 :     break;
   38503           0 :    } else {
   38504           0 :     i4 = i4 + 1 | 0;
   38505           0 :    }
   38506           0 :   }
   38507           0 :  }
   38508           0 :  _lua_pushunsigned(i1, i5);
   38509           0 :  STACKTOP = i2;
   38510           0 :  return 1;
   38511           1 : }
   38512           1 : function _luaB_assert(i1) {
   38513           0 :  i1 = i1 | 0;
   38514           0 :  var i2 = 0, i3 = 0;
   38515           0 :  i2 = STACKTOP;
   38516           0 :  STACKTOP = STACKTOP + 16 | 0;
   38517           0 :  i3 = i2;
   38518           0 :  if ((_lua_toboolean(i1, 1) | 0) == 0) {
   38519           0 :   HEAP32[i3 >> 2] = _luaL_optlstring(i1, 2, 10216, 0) | 0;
   38520           0 :   i3 = _luaL_error(i1, 10208, i3) | 0;
   38521           0 :   STACKTOP = i2;
   38522           0 :   return i3 | 0;
   38523           0 :  } else {
   38524           0 :   i3 = _lua_gettop(i1) | 0;
   38525           0 :   STACKTOP = i2;
   38526           0 :   return i3 | 0;
   38527           0 :  }
   38528           0 :  return 0;
   38529           1 : }
   38530           1 : function _b_or(i1) {
   38531           0 :  i1 = i1 | 0;
   38532           0 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   38533           0 :  i2 = STACKTOP;
   38534           0 :  i3 = _lua_gettop(i1) | 0;
   38535           0 :  if ((i3 | 0) < 1) {
   38536           0 :   i5 = 0;
   38537           0 :  } else {
   38538           0 :   i4 = 1;
   38539           0 :   i5 = 0;
   38540           0 :   while (1) {
   38541           0 :    i5 = _luaL_checkunsigned(i1, i4) | 0 | i5;
   38542           0 :    if ((i4 | 0) == (i3 | 0)) {
   38543           0 :     break;
   38544           0 :    } else {
   38545           0 :     i4 = i4 + 1 | 0;
   38546           0 :    }
   38547           0 :   }
   38548           0 :  }
   38549           0 :  _lua_pushunsigned(i1, i5);
   38550           0 :  STACKTOP = i2;
   38551           0 :  return 1;
   38552           1 : }
   38553           5 : function _io_write(i1) {
   38554           5 :  i1 = i1 | 0;
   38555           5 :  var i2 = 0, i3 = 0, i4 = 0;
   38556           5 :  i2 = STACKTOP;
   38557           5 :  STACKTOP = STACKTOP + 16 | 0;
   38558           5 :  i4 = i2;
   38559           5 :  _lua_getfield(i1, -1001e3, 2800);
   38560           5 :  i3 = _lua_touserdata(i1, -1) | 0;
   38561           5 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   38562           5 :   HEAP32[i4 >> 2] = 2804;
   38563           5 :   _luaL_error(i1, 3424, i4) | 0;
   38564           5 :  }
   38565           5 :  i4 = _g_write(i1, HEAP32[i3 >> 2] | 0, 1) | 0;
   38566           5 :  STACKTOP = i2;
   38567           5 :  return i4 | 0;
   38568           5 : }
   38569           1 : function _luaK_checkstack(i1, i3) {
   38570           0 :  i1 = i1 | 0;
   38571           0 :  i3 = i3 | 0;
   38572           0 :  var i2 = 0, i4 = 0;
   38573           0 :  i2 = STACKTOP;
   38574           0 :  i3 = (HEAPU8[i1 + 48 | 0] | 0) + i3 | 0;
   38575           0 :  i4 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
   38576           0 :  if ((i3 | 0) <= (HEAPU8[i4] | 0 | 0)) {
   38577           0 :   STACKTOP = i2;
   38578           0 :   return;
   38579           0 :  }
   38580           0 :  if ((i3 | 0) > 249) {
   38581           0 :   _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
   38582           0 :  }
   38583           0 :  HEAP8[i4] = i3;
   38584           0 :  STACKTOP = i2;
   38585           0 :  return;
   38586           1 : }
   38587           1 : function _io_read(i1) {
   38588           0 :  i1 = i1 | 0;
   38589           0 :  var i2 = 0, i3 = 0, i4 = 0;
   38590           0 :  i2 = STACKTOP;
   38591           0 :  STACKTOP = STACKTOP + 16 | 0;
   38592           0 :  i4 = i2;
   38593           0 :  _lua_getfield(i1, -1001e3, 2776);
   38594           0 :  i3 = _lua_touserdata(i1, -1) | 0;
   38595           0 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   38596           0 :   HEAP32[i4 >> 2] = 2780;
   38597           0 :   _luaL_error(i1, 3424, i4) | 0;
   38598           0 :  }
   38599           0 :  i4 = _g_read(i1, HEAP32[i3 >> 2] | 0, 1) | 0;
   38600           0 :  STACKTOP = i2;
   38601           0 :  return i4 | 0;
   38602           1 : }
   38603           1 : function _db_setupvalue(i1) {
   38604           0 :  i1 = i1 | 0;
   38605           0 :  var i2 = 0, i3 = 0;
   38606           0 :  i2 = STACKTOP;
   38607           0 :  _luaL_checkany(i1, 3);
   38608           0 :  i3 = _luaL_checkinteger(i1, 2) | 0;
   38609           0 :  _luaL_checktype(i1, 1, 6);
   38610           0 :  i3 = _lua_setupvalue(i1, 1, i3) | 0;
   38611           0 :  if ((i3 | 0) == 0) {
   38612           0 :   i3 = 0;
   38613           0 :   STACKTOP = i2;
   38614           0 :   return i3 | 0;
   38615           0 :  }
   38616           0 :  _lua_pushstring(i1, i3) | 0;
   38617           0 :  _lua_insert(i1, -1);
   38618           0 :  i3 = 1;
   38619           0 :  STACKTOP = i2;
   38620           0 :  return i3 | 0;
   38621           1 : }
   38622           1 : function ___uflow(i2) {
   38623           0 :  i2 = i2 | 0;
   38624           0 :  var i1 = 0, i3 = 0;
   38625           0 :  i1 = STACKTOP;
   38626           0 :  STACKTOP = STACKTOP + 16 | 0;
   38627           0 :  i3 = i1;
   38628           0 :  if ((HEAP32[i2 + 8 >> 2] | 0) == 0 ? (___toread(i2) | 0) != 0 : 0) {
   38629           0 :   i2 = -1;
   38630           0 :  } else {
   38631           0 :   if ((FUNCTION_TABLE_iiii[HEAP32[i2 + 32 >> 2] & 3](i2, i3, 1) | 0) == 1) {
   38632           0 :    i2 = HEAPU8[i3] | 0;
   38633           0 :   } else {
   38634           0 :    i2 = -1;
   38635           0 :   }
   38636           0 :  }
   38637           0 :  STACKTOP = i1;
   38638           0 :  return i2 | 0;
   38639           1 : }
   38640           1 : function _llvm_cttz_i32(i1) {
   38641           0 :  i1 = i1 | 0;
   38642           0 :  var i2 = 0;
   38643           0 :  i2 = HEAP8[cttz_i8 + (i1 & 255) | 0] | 0;
   38644           0 :  if ((i2 | 0) < 8) return i2 | 0;
   38645           0 :  i2 = HEAP8[cttz_i8 + (i1 >> 8 & 255) | 0] | 0;
   38646           0 :  if ((i2 | 0) < 8) return i2 + 8 | 0;
   38647           0 :  i2 = HEAP8[cttz_i8 + (i1 >> 16 & 255) | 0] | 0;
   38648           0 :  if ((i2 | 0) < 8) return i2 + 16 | 0;
   38649           0 :  return (HEAP8[cttz_i8 + (i1 >>> 24) | 0] | 0) + 24 | 0;
   38650           1 : }
   38651          80 : function _llvm_ctlz_i32(i1) {
   38652          80 :  i1 = i1 | 0;
   38653          80 :  var i2 = 0;
   38654          80 :  i2 = HEAP8[ctlz_i8 + (i1 >>> 24) | 0] | 0;
   38655          80 :  if ((i2 | 0) < 8) return i2 | 0;
   38656          80 :  i2 = HEAP8[ctlz_i8 + (i1 >> 16 & 255) | 0] | 0;
   38657          80 :  if ((i2 | 0) < 8) return i2 + 8 | 0;
   38658          80 :  i2 = HEAP8[ctlz_i8 + (i1 >> 8 & 255) | 0] | 0;
   38659          80 :  if ((i2 | 0) < 8) return i2 + 16 | 0;
   38660          80 :  return (HEAP8[ctlz_i8 + (i1 & 255) | 0] | 0) + 24 | 0;
   38661          80 : }
   38662          65 : function _luaO_ceillog2(i2) {
   38663          65 :  i2 = i2 | 0;
   38664          65 :  var i1 = 0, i3 = 0, i4 = 0;
   38665          65 :  i1 = STACKTOP;
   38666          65 :  i2 = i2 + -1 | 0;
   38667          65 :  if (i2 >>> 0 > 255) {
   38668          65 :   i3 = 0;
   38669          65 :   while (1) {
   38670          65 :    i3 = i3 + 8 | 0;
   38671          65 :    i4 = i2 >>> 8;
   38672          65 :    if (i2 >>> 0 > 65535) {
   38673          65 :     i2 = i4;
   38674          65 :    } else {
   38675          65 :     i2 = i4;
   38676          65 :     break;
   38677          65 :    }
   38678          65 :   }
   38679          65 :  } else {
   38680          65 :   i3 = 0;
   38681          65 :  }
   38682          65 :  STACKTOP = i1;
   38683          65 :  return (HEAPU8[5208 + i2 | 0] | 0) + i3 | 0;
   38684          65 : }
   38685           1 : function _os_exit(i1) {
   38686           0 :  i1 = i1 | 0;
   38687           0 :  var i2 = 0, i3 = 0;
   38688           0 :  i2 = STACKTOP;
   38689           0 :  if ((_lua_type(i1, 1) | 0) == 1) {
   38690           0 :   i3 = (_lua_toboolean(i1, 1) | 0) == 0 | 0;
   38691           0 :  } else {
   38692           0 :   i3 = _luaL_optinteger(i1, 1, 0) | 0;
   38693           0 :  }
   38694           0 :  if ((_lua_toboolean(i1, 2) | 0) != 0) {
   38695           0 :   _lua_close(i1);
   38696           0 :  }
   38697           0 :  if ((i1 | 0) == 0) {
   38698           0 :   STACKTOP = i2;
   38699           0 :   return 0;
   38700           0 :  } else {
   38701           0 :   _exit(i3 | 0);
   38702           0 :  }
   38703           0 :  return 0;
   38704           1 : }
   38705           1 : function _luaL_newmetatable(i1, i3) {
   38706           1 :  i1 = i1 | 0;
   38707           1 :  i3 = i3 | 0;
   38708           1 :  var i2 = 0;
   38709           1 :  i2 = STACKTOP;
   38710           1 :  _lua_getfield(i1, -1001e3, i3);
   38711           1 :  if ((_lua_type(i1, -1) | 0) != 0) {
   38712           1 :   i3 = 0;
   38713           1 :   STACKTOP = i2;
   38714           1 :   return i3 | 0;
   38715           1 :  }
   38716           1 :  _lua_settop(i1, -2);
   38717           1 :  _lua_createtable(i1, 0, 0);
   38718           1 :  _lua_pushvalue(i1, -1);
   38719           1 :  _lua_setfield(i1, -1001e3, i3);
   38720           1 :  i3 = 1;
   38721           1 :  STACKTOP = i2;
   38722           1 :  return i3 | 0;
   38723           1 : }
   38724      143016 : function _luaH_free(i1, i4) {
   38725      143016 :  i1 = i1 | 0;
   38726      143016 :  i4 = i4 | 0;
   38727      143016 :  var i2 = 0, i3 = 0;
   38728      143016 :  i2 = STACKTOP;
   38729      143016 :  i3 = HEAP32[i4 + 16 >> 2] | 0;
   38730      143016 :  if ((i3 | 0) != 8016) {
   38731      143016 :   _luaM_realloc_(i1, i3, 32 << (HEAPU8[i4 + 7 | 0] | 0), 0) | 0;
   38732      143016 :  }
   38733      143016 :  _luaM_realloc_(i1, HEAP32[i4 + 12 >> 2] | 0, HEAP32[i4 + 28 >> 2] << 4, 0) | 0;
   38734      143016 :  _luaM_realloc_(i1, i4, 32, 0) | 0;
   38735      143016 :  STACKTOP = i2;
   38736      143016 :  return;
   38737      143016 : }
   38738           4 : function _luaO_int2fb(i3) {
   38739           4 :  i3 = i3 | 0;
   38740           4 :  var i1 = 0, i2 = 0, i4 = 0;
   38741           4 :  i1 = STACKTOP;
   38742           4 :  if (i3 >>> 0 < 8) {
   38743           4 :   STACKTOP = i1;
   38744           4 :   return i3 | 0;
   38745           4 :  }
   38746           4 :  if (i3 >>> 0 > 15) {
   38747           4 :   i2 = 1;
   38748           4 :   do {
   38749           4 :    i4 = i3 + 1 | 0;
   38750           4 :    i3 = i4 >>> 1;
   38751           4 :    i2 = i2 + 1 | 0;
   38752           4 :   } while (i4 >>> 0 > 31);
   38753           4 :   i2 = i2 << 3;
   38754           4 :  } else {
   38755           4 :   i2 = 8;
   38756           4 :  }
   38757           4 :  i4 = i2 | i3 + -8;
   38758           4 :  STACKTOP = i1;
   38759           4 :  return i4 | 0;
   38760           4 : }
   38761           1 : function _luaK_codek(i3, i4, i1) {
   38762           1 :  i3 = i3 | 0;
   38763           1 :  i4 = i4 | 0;
   38764           1 :  i1 = i1 | 0;
   38765           1 :  var i2 = 0;
   38766           1 :  i2 = STACKTOP;
   38767           1 :  i4 = i4 << 6;
   38768           1 :  if ((i1 | 0) < 262144) {
   38769           1 :   i4 = _luaK_code(i3, i4 | i1 << 14 | 1) | 0;
   38770           1 :   STACKTOP = i2;
   38771           1 :   return i4 | 0;
   38772           1 :  } else {
   38773           1 :   i4 = _luaK_code(i3, i4 | 2) | 0;
   38774           1 :   _luaK_code(i3, i1 << 6 | 39) | 0;
   38775           1 :   STACKTOP = i2;
   38776           1 :   return i4 | 0;
   38777           1 :  }
   38778           1 :  return 0;
   38779           1 : }
   38780           1 : function _luaB_xpcall(i1) {
   38781           0 :  i1 = i1 | 0;
   38782           0 :  var i2 = 0, i3 = 0;
   38783           0 :  i2 = STACKTOP;
   38784           0 :  i3 = _lua_gettop(i1) | 0;
   38785           0 :  if ((i3 | 0) <= 1) {
   38786           0 :   _luaL_argerror(i1, 2, 9616) | 0;
   38787           0 :  }
   38788           0 :  _lua_pushvalue(i1, 1);
   38789           0 :  _lua_copy(i1, 2, 1);
   38790           0 :  _lua_replace(i1, 2);
   38791           0 :  i3 = _finishpcall(i1, (_lua_pcallk(i1, i3 + -2 | 0, -1, 1, 0, 166) | 0) == 0 | 0) | 0;
   38792           0 :  STACKTOP = i2;
   38793           0 :  return i3 | 0;
   38794           1 : }
   38795           3 : function _luaS_newudata(i1, i3, i4) {
   38796           3 :  i1 = i1 | 0;
   38797           3 :  i3 = i3 | 0;
   38798           3 :  i4 = i4 | 0;
   38799           3 :  var i2 = 0;
   38800           3 :  i2 = STACKTOP;
   38801           3 :  if (i3 >>> 0 > 4294967269) {
   38802           3 :   _luaM_toobig(i1);
   38803           3 :  } else {
   38804           3 :   i1 = _luaC_newobj(i1, 7, i3 + 24 | 0, 0, 0) | 0;
   38805           3 :   HEAP32[i1 + 16 >> 2] = i3;
   38806           3 :   HEAP32[i1 + 8 >> 2] = 0;
   38807           3 :   HEAP32[i1 + 12 >> 2] = i4;
   38808           3 :   STACKTOP = i2;
   38809           3 :   return i1 | 0;
   38810           3 :  }
   38811           3 :  return 0;
   38812           3 : }
   38813           1 : function _lua_dump(i1, i4, i5) {
   38814           0 :  i1 = i1 | 0;
   38815           0 :  i4 = i4 | 0;
   38816           0 :  i5 = i5 | 0;
   38817           0 :  var i2 = 0, i3 = 0;
   38818           0 :  i2 = STACKTOP;
   38819           0 :  i3 = HEAP32[i1 + 8 >> 2] | 0;
   38820           0 :  if ((HEAP32[i3 + -8 >> 2] | 0) != 70) {
   38821           0 :   i5 = 1;
   38822           0 :   STACKTOP = i2;
   38823           0 :   return i5 | 0;
   38824           0 :  }
   38825           0 :  i5 = _luaU_dump(i1, HEAP32[(HEAP32[i3 + -16 >> 2] | 0) + 12 >> 2] | 0, i4, i5, 0) | 0;
   38826           0 :  STACKTOP = i2;
   38827           0 :  return i5 | 0;
   38828           1 : }
   38829           1 : function _luaS_eqlngstr(i2, i4) {
   38830           0 :  i2 = i2 | 0;
   38831           0 :  i4 = i4 | 0;
   38832           0 :  var i1 = 0, i3 = 0;
   38833           0 :  i1 = STACKTOP;
   38834           0 :  i3 = HEAP32[i2 + 12 >> 2] | 0;
   38835           0 :  if ((i2 | 0) != (i4 | 0)) {
   38836           0 :   if ((i3 | 0) == (HEAP32[i4 + 12 >> 2] | 0)) {
   38837           0 :    i2 = (_memcmp(i2 + 16 | 0, i4 + 16 | 0, i3) | 0) == 0;
   38838           0 :   } else {
   38839           0 :    i2 = 0;
   38840           0 :   }
   38841           0 :  } else {
   38842           0 :   i2 = 1;
   38843           0 :  }
   38844           0 :  STACKTOP = i1;
   38845           0 :  return i2 & 1 | 0;
   38846           1 : }
   38847           1 : function _luaC_barrier_(i4, i3, i1) {
   38848           0 :  i4 = i4 | 0;
   38849           0 :  i3 = i3 | 0;
   38850           0 :  i1 = i1 | 0;
   38851           0 :  var i2 = 0;
   38852           0 :  i2 = STACKTOP;
   38853           0 :  i4 = HEAP32[i4 + 12 >> 2] | 0;
   38854           0 :  if ((HEAPU8[i4 + 61 | 0] | 0) < 2) {
   38855           0 :   _reallymarkobject(i4, i1);
   38856           0 :   STACKTOP = i2;
   38857           0 :   return;
   38858           0 :  } else {
   38859           0 :   i3 = i3 + 5 | 0;
   38860           0 :   HEAP8[i3] = HEAP8[i4 + 60 | 0] & 3 | HEAP8[i3] & 184;
   38861           0 :   STACKTOP = i2;
   38862           0 :   return;
   38863           0 :  }
   38864           1 : }
   38865           1 : function _db_getupvalue(i1) {
   38866           0 :  i1 = i1 | 0;
   38867           0 :  var i2 = 0, i3 = 0;
   38868           0 :  i2 = STACKTOP;
   38869           0 :  i3 = _luaL_checkinteger(i1, 2) | 0;
   38870           0 :  _luaL_checktype(i1, 1, 6);
   38871           0 :  i3 = _lua_getupvalue(i1, 1, i3) | 0;
   38872           0 :  if ((i3 | 0) == 0) {
   38873           0 :   i3 = 0;
   38874           0 :   STACKTOP = i2;
   38875           0 :   return i3 | 0;
   38876           0 :  }
   38877           0 :  _lua_pushstring(i1, i3) | 0;
   38878           0 :  _lua_insert(i1, -2);
   38879           0 :  i3 = 2;
   38880           0 :  STACKTOP = i2;
   38881           0 :  return i3 | 0;
   38882           1 : }
   38883           1 : function _os_execute(i1) {
   38884           0 :  i1 = i1 | 0;
   38885           0 :  var i2 = 0, i3 = 0, i4 = 0;
   38886           0 :  i2 = STACKTOP;
   38887           0 :  i4 = _luaL_optlstring(i1, 1, 0, 0) | 0;
   38888           0 :  i3 = _system(i4 | 0) | 0;
   38889           0 :  if ((i4 | 0) == 0) {
   38890           0 :   _lua_pushboolean(i1, i3);
   38891           0 :   i4 = 1;
   38892           0 :   STACKTOP = i2;
   38893           0 :   return i4 | 0;
   38894           0 :  } else {
   38895           0 :   i4 = _luaL_execresult(i1, i3) | 0;
   38896           0 :   STACKTOP = i2;
   38897           0 :   return i4 | 0;
   38898           0 :  }
   38899           0 :  return 0;
   38900           1 : }
   38901           1 : function _lua_pushfstring(i4, i5, i1) {
   38902           1 :  i4 = i4 | 0;
   38903           1 :  i5 = i5 | 0;
   38904           1 :  i1 = i1 | 0;
   38905           1 :  var i2 = 0, i3 = 0;
   38906           1 :  i2 = STACKTOP;
   38907           1 :  STACKTOP = STACKTOP + 16 | 0;
   38908           1 :  i3 = i2;
   38909           1 :  if ((HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   38910           1 :   _luaC_step(i4);
   38911           1 :  }
   38912           1 :  HEAP32[i3 >> 2] = i1;
   38913           1 :  i5 = _luaO_pushvfstring(i4, i5, i3) | 0;
   38914           1 :  STACKTOP = i2;
   38915           1 :  return i5 | 0;
   38916           1 : }
   38917           1 : function _luaB_dofile(i1) {
   38918           0 :  i1 = i1 | 0;
   38919           0 :  var i2 = 0, i3 = 0;
   38920           0 :  i2 = STACKTOP;
   38921           0 :  i3 = _luaL_optlstring(i1, 1, 0, 0) | 0;
   38922           0 :  _lua_settop(i1, 1);
   38923           0 :  if ((_luaL_loadfilex(i1, i3, 0) | 0) == 0) {
   38924           0 :   _lua_callk(i1, 0, -1, 0, 164);
   38925           0 :   i3 = (_lua_gettop(i1) | 0) + -1 | 0;
   38926           0 :   STACKTOP = i2;
   38927           0 :   return i3 | 0;
   38928           0 :  } else {
   38929           0 :   _lua_error(i1) | 0;
   38930           0 :  }
   38931           0 :  return 0;
   38932           1 : }
   38933           1 : function _f_write(i1) {
   38934           0 :  i1 = i1 | 0;
   38935           0 :  var i2 = 0, i3 = 0;
   38936           0 :  i2 = STACKTOP;
   38937           0 :  STACKTOP = STACKTOP + 16 | 0;
   38938           0 :  i3 = _luaL_checkudata(i1, 1, 2832) | 0;
   38939           0 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   38940           0 :   _luaL_error(i1, 3080, i2) | 0;
   38941           0 :  }
   38942           0 :  i3 = HEAP32[i3 >> 2] | 0;
   38943           0 :  _lua_pushvalue(i1, 1);
   38944           0 :  i3 = _g_write(i1, i3, 2) | 0;
   38945           0 :  STACKTOP = i2;
   38946           0 :  return i3 | 0;
   38947           1 : }
   38948           1 : function _lua_getctx(i3, i1) {
   38949           0 :  i3 = i3 | 0;
   38950           0 :  i1 = i1 | 0;
   38951           0 :  var i2 = 0;
   38952           0 :  i2 = STACKTOP;
   38953           0 :  i3 = HEAP32[i3 + 16 >> 2] | 0;
   38954           0 :  if ((HEAP8[i3 + 18 | 0] & 8) == 0) {
   38955           0 :   i3 = 0;
   38956           0 :   STACKTOP = i2;
   38957           0 :   return i3 | 0;
   38958           0 :  }
   38959           0 :  if ((i1 | 0) != 0) {
   38960           0 :   HEAP32[i1 >> 2] = HEAP32[i3 + 24 >> 2];
   38961           0 :  }
   38962           0 :  i3 = HEAPU8[i3 + 37 | 0] | 0;
   38963           0 :  STACKTOP = i2;
   38964           0 :  return i3 | 0;
   38965           1 : }
   38966           1 : function _f_flush(i1) {
   38967           0 :  i1 = i1 | 0;
   38968           0 :  var i2 = 0, i3 = 0;
   38969           0 :  i2 = STACKTOP;
   38970           0 :  STACKTOP = STACKTOP + 16 | 0;
   38971           0 :  i3 = _luaL_checkudata(i1, 1, 2832) | 0;
   38972           0 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   38973           0 :   _luaL_error(i1, 3080, i2) | 0;
   38974           0 :  }
   38975           0 :  i3 = _luaL_fileresult(i1, (_fflush(HEAP32[i3 >> 2] | 0) | 0) == 0 | 0, 0) | 0;
   38976           0 :  STACKTOP = i2;
   38977           0 :  return i3 | 0;
   38978           1 : }
   38979           1 : function _os_tmpname(i1) {
   38980           0 :  i1 = i1 | 0;
   38981           0 :  var i2 = 0, i3 = 0;
   38982           0 :  i2 = STACKTOP;
   38983           0 :  STACKTOP = STACKTOP + 32 | 0;
   38984           0 :  i3 = i2 + 4 | 0;
   38985           0 :  if ((_tmpnam(i3 | 0) | 0) == 0) {
   38986           0 :   i3 = _luaL_error(i1, 5824, i2) | 0;
   38987           0 :   STACKTOP = i2;
   38988           0 :   return i3 | 0;
   38989           0 :  } else {
   38990           0 :   _lua_pushstring(i1, i3) | 0;
   38991           0 :   i3 = 1;
   38992           0 :   STACKTOP = i2;
   38993           0 :   return i3 | 0;
   38994           0 :  }
   38995           0 :  return 0;
   38996           1 : }
   38997           1 : function _traceback(i1) {
   38998           0 :  i1 = i1 | 0;
   38999           0 :  var i2 = 0, i3 = 0;
   39000           0 :  i2 = STACKTOP;
   39001           0 :  i3 = _lua_tolstring(i1, 1, 0) | 0;
   39002           0 :  if ((i3 | 0) == 0) {
   39003           0 :   if ((_lua_type(i1, 1) | 0) >= 1 ? (_luaL_callmeta(i1, 1, 216) | 0) == 0 : 0) {
   39004           0 :    _lua_pushlstring(i1, 232, 18) | 0;
   39005           0 :   }
   39006           0 :  } else {
   39007           0 :   _luaL_traceback(i1, i1, i3, 1);
   39008           0 :  }
   39009           0 :  STACKTOP = i2;
   39010           0 :  return 1;
   39011           1 : }
   39012      143016 : function _luaH_new(i1) {
   39013      143016 :  i1 = i1 | 0;
   39014      143016 :  var i2 = 0;
   39015      143016 :  i2 = STACKTOP;
   39016      143016 :  i1 = _luaC_newobj(i1, 5, 32, 0, 0) | 0;
   39017      143016 :  HEAP32[i1 + 8 >> 2] = 0;
   39018      143016 :  HEAP8[i1 + 6 | 0] = -1;
   39019      143016 :  HEAP32[i1 + 12 >> 2] = 0;
   39020      143016 :  HEAP32[i1 + 28 >> 2] = 0;
   39021      143016 :  HEAP32[i1 + 16 >> 2] = 8016;
   39022      143016 :  HEAP8[i1 + 7 | 0] = 0;
   39023      143016 :  HEAP32[i1 + 20 >> 2] = 8016;
   39024      143016 :  STACKTOP = i2;
   39025      143016 :  return i1 | 0;
   39026      143016 : }
   39027           1 : function _luaL_len(i1, i3) {
   39028           1 :  i1 = i1 | 0;
   39029           1 :  i3 = i3 | 0;
   39030           1 :  var i2 = 0, i4 = 0;
   39031           1 :  i2 = STACKTOP;
   39032           1 :  STACKTOP = STACKTOP + 16 | 0;
   39033           1 :  i4 = i2 + 4 | 0;
   39034           1 :  _lua_len(i1, i3);
   39035           1 :  i3 = _lua_tointegerx(i1, -1, i4) | 0;
   39036           1 :  if ((HEAP32[i4 >> 2] | 0) == 0) {
   39037           1 :   _luaL_error(i1, 1352, i2) | 0;
   39038           1 :  }
   39039           1 :  _lua_settop(i1, -2);
   39040           1 :  STACKTOP = i2;
   39041           1 :  return i3 | 0;
   39042           1 : }
   39043           1 : function _getS(i3, i2, i1) {
   39044           0 :  i3 = i3 | 0;
   39045           0 :  i2 = i2 | 0;
   39046           0 :  i1 = i1 | 0;
   39047           0 :  var i4 = 0, i5 = 0;
   39048           0 :  i3 = STACKTOP;
   39049           0 :  i5 = i2 + 4 | 0;
   39050           0 :  i4 = HEAP32[i5 >> 2] | 0;
   39051           0 :  if ((i4 | 0) == 0) {
   39052           0 :   i5 = 0;
   39053           0 :   STACKTOP = i3;
   39054           0 :   return i5 | 0;
   39055           0 :  }
   39056           0 :  HEAP32[i1 >> 2] = i4;
   39057           0 :  HEAP32[i5 >> 2] = 0;
   39058           0 :  i5 = HEAP32[i2 >> 2] | 0;
   39059           0 :  STACKTOP = i3;
   39060           0 :  return i5 | 0;
   39061           1 : }
   39062           4 : function _luaC_runtilstate(i1, i4) {
   39063           4 :  i1 = i1 | 0;
   39064           4 :  i4 = i4 | 0;
   39065           4 :  var i2 = 0, i3 = 0;
   39066           4 :  i2 = STACKTOP;
   39067           4 :  i3 = (HEAP32[i1 + 12 >> 2] | 0) + 61 | 0;
   39068           4 :  if ((1 << (HEAPU8[i3] | 0) & i4 | 0) != 0) {
   39069           4 :   STACKTOP = i2;
   39070           4 :   return;
   39071           4 :  }
   39072           4 :  do {
   39073           4 :   _singlestep(i1) | 0;
   39074           4 :  } while ((1 << (HEAPU8[i3] | 0) & i4 | 0) == 0);
   39075           4 :  STACKTOP = i2;
   39076           4 :  return;
   39077           4 : }
   39078           1 : function _luaX_init(i1) {
   39079           1 :  i1 = i1 | 0;
   39080           1 :  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
   39081           1 :  i2 = STACKTOP;
   39082           1 :  i3 = 0;
   39083           1 :  do {
   39084           1 :   i4 = _luaS_new(i1, HEAP32[12096 + (i3 << 2) >> 2] | 0) | 0;
   39085           1 :   i5 = i4 + 5 | 0;
   39086           1 :   HEAP8[i5] = HEAPU8[i5] | 0 | 32;
   39087           1 :   i3 = i3 + 1 | 0;
   39088           1 :   HEAP8[i4 + 6 | 0] = i3;
   39089           1 :  } while ((i3 | 0) != 22);
   39090           1 :  STACKTOP = i2;
   39091           1 :  return;
   39092           1 : }
   39093          21 : function _luaK_indexed(i5, i1, i4) {
   39094          21 :  i5 = i5 | 0;
   39095          21 :  i1 = i1 | 0;
   39096          21 :  i4 = i4 | 0;
   39097          21 :  var i2 = 0, i3 = 0;
   39098          21 :  i3 = STACKTOP;
   39099          21 :  i2 = i1 + 8 | 0;
   39100          21 :  HEAP8[i2 + 2 | 0] = HEAP32[i2 >> 2];
   39101          21 :  HEAP16[i2 >> 1] = _luaK_exp2RK(i5, i4) | 0;
   39102          21 :  HEAP8[i2 + 3 | 0] = (HEAP32[i1 >> 2] | 0) == 8 ? 8 : 7;
   39103          21 :  HEAP32[i1 >> 2] = 9;
   39104          21 :  STACKTOP = i3;
   39105          21 :  return;
   39106          21 : }
   39107           1 : function _db_setuservalue(i1) {
   39108           0 :  i1 = i1 | 0;
   39109           0 :  var i2 = 0;
   39110           0 :  i2 = STACKTOP;
   39111           0 :  if ((_lua_type(i1, 1) | 0) == 2) {
   39112           0 :   _luaL_argerror(i1, 1, 11680) | 0;
   39113           0 :  }
   39114           0 :  _luaL_checktype(i1, 1, 7);
   39115           0 :  if ((_lua_type(i1, 2) | 0) >= 1) {
   39116           0 :   _luaL_checktype(i1, 2, 5);
   39117           0 :  }
   39118           0 :  _lua_settop(i1, 2);
   39119           0 :  _lua_setuservalue(i1, 1);
   39120           0 :  STACKTOP = i2;
   39121           0 :  return 1;
   39122           1 : }
   39123           1 : function _ll_seeall(i1) {
   39124           0 :  i1 = i1 | 0;
   39125           0 :  var i2 = 0;
   39126           0 :  i2 = STACKTOP;
   39127           0 :  _luaL_checktype(i1, 1, 5);
   39128           0 :  if ((_lua_getmetatable(i1, 1) | 0) == 0) {
   39129           0 :   _lua_createtable(i1, 0, 1);
   39130           0 :   _lua_pushvalue(i1, -1);
   39131           0 :   _lua_setmetatable(i1, 1) | 0;
   39132           0 :  }
   39133           0 :  _lua_rawgeti(i1, -1001e3, 2);
   39134           0 :  _lua_setfield(i1, -2, 5168);
   39135           0 :  STACKTOP = i2;
   39136           0 :  return 0;
   39137           1 : }
   39138           1 : function _luaL_loadbufferx(i3, i5, i4, i2, i1) {
   39139           0 :  i3 = i3 | 0;
   39140           0 :  i5 = i5 | 0;
   39141           0 :  i4 = i4 | 0;
   39142           0 :  i2 = i2 | 0;
   39143           0 :  i1 = i1 | 0;
   39144           0 :  var i6 = 0, i7 = 0;
   39145           0 :  i6 = STACKTOP;
   39146           0 :  STACKTOP = STACKTOP + 16 | 0;
   39147           0 :  i7 = i6;
   39148           0 :  HEAP32[i7 >> 2] = i5;
   39149           0 :  HEAP32[i7 + 4 >> 2] = i4;
   39150           0 :  i5 = _lua_load(i3, 2, i7, i2, i1) | 0;
   39151           0 :  STACKTOP = i6;
   39152           0 :  return i5 | 0;
   39153           1 : }
   39154           6 : function _luaT_gettm(i1, i3, i4) {
   39155           6 :  i1 = i1 | 0;
   39156           6 :  i3 = i3 | 0;
   39157           6 :  i4 = i4 | 0;
   39158           6 :  var i2 = 0;
   39159           6 :  i2 = STACKTOP;
   39160           6 :  i4 = _luaH_getstr(i1, i4) | 0;
   39161           6 :  if ((HEAP32[i4 + 8 >> 2] | 0) != 0) {
   39162           6 :   STACKTOP = i2;
   39163           6 :   return i4 | 0;
   39164           6 :  }
   39165           6 :  i4 = i1 + 6 | 0;
   39166           6 :  HEAP8[i4] = HEAPU8[i4] | 0 | 1 << i3;
   39167           6 :  i4 = 0;
   39168           6 :  STACKTOP = i2;
   39169           6 :  return i4 | 0;
   39170           6 : }
   39171           5 : function _luaL_pushresult(i1) {
   39172           5 :  i1 = i1 | 0;
   39173           5 :  var i2 = 0, i3 = 0;
   39174           5 :  i2 = STACKTOP;
   39175           5 :  i3 = HEAP32[i1 + 12 >> 2] | 0;
   39176           5 :  _lua_pushlstring(i3, HEAP32[i1 >> 2] | 0, HEAP32[i1 + 8 >> 2] | 0) | 0;
   39177           5 :  if ((HEAP32[i1 >> 2] | 0) == (i1 + 16 | 0)) {
   39178           5 :   STACKTOP = i2;
   39179           5 :   return;
   39180           5 :  }
   39181           5 :  _lua_remove(i3, -2);
   39182           5 :  STACKTOP = i2;
   39183           5 :  return;
   39184           5 : }
   39185           1 : function _resume_error(i1, i3, i2) {
   39186           0 :  i1 = i1 | 0;
   39187           0 :  i3 = i3 | 0;
   39188           0 :  i2 = i2 | 0;
   39189           0 :  var i4 = 0;
   39190           0 :  i4 = i1 + 8 | 0;
   39191           0 :  HEAP32[i4 >> 2] = i2;
   39192           0 :  i3 = _luaS_new(i1, i3) | 0;
   39193           0 :  HEAP32[i2 >> 2] = i3;
   39194           0 :  HEAP32[i2 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
   39195           0 :  HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 16;
   39196           0 :  _luaD_throw(i1, -1);
   39197           1 : }
   39198           3 : function _lua_absindex(i3, i1) {
   39199           3 :  i3 = i3 | 0;
   39200           3 :  i1 = i1 | 0;
   39201           3 :  var i2 = 0;
   39202           3 :  i2 = STACKTOP;
   39203           3 :  if ((i1 + 1000999 | 0) >>> 0 > 1000999) {
   39204           3 :   i3 = i1;
   39205           3 :   STACKTOP = i2;
   39206           3 :   return i3 | 0;
   39207           3 :  }
   39208           3 :  i3 = ((HEAP32[i3 + 8 >> 2] | 0) - (HEAP32[HEAP32[i3 + 16 >> 2] >> 2] | 0) >> 4) + i1 | 0;
   39209           3 :  STACKTOP = i2;
   39210           3 :  return i3 | 0;
   39211           3 : }
   39212          24 : function ___uremdi3(i4, i3, i2, i1) {
   39213          24 :  i4 = i4 | 0;
   39214          24 :  i3 = i3 | 0;
   39215          24 :  i2 = i2 | 0;
   39216          24 :  i1 = i1 | 0;
   39217          24 :  var i5 = 0, i6 = 0;
   39218          24 :  i6 = STACKTOP;
   39219          24 :  STACKTOP = STACKTOP + 8 | 0;
   39220          24 :  i5 = i6 | 0;
   39221          24 :  ___udivmoddi4(i4, i3, i2, i1, i5) | 0;
   39222          24 :  STACKTOP = i6;
   39223          24 :  return (tempRet0 = HEAP32[i5 + 4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
   39224          24 : }
   39225           1 : function _f_read(i1) {
   39226           0 :  i1 = i1 | 0;
   39227           0 :  var i2 = 0, i3 = 0;
   39228           0 :  i2 = STACKTOP;
   39229           0 :  STACKTOP = STACKTOP + 16 | 0;
   39230           0 :  i3 = _luaL_checkudata(i1, 1, 2832) | 0;
   39231           0 :  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
   39232           0 :   _luaL_error(i1, 3080, i2) | 0;
   39233           0 :  }
   39234           0 :  i3 = _g_read(i1, HEAP32[i3 >> 2] | 0, 2) | 0;
   39235           0 :  STACKTOP = i2;
   39236           0 :  return i3 | 0;
   39237           1 : }
   39238           1 : function _sort(i1) {
   39239           0 :  i1 = i1 | 0;
   39240           0 :  var i2 = 0, i3 = 0;
   39241           0 :  i2 = STACKTOP;
   39242           0 :  _luaL_checktype(i1, 1, 5);
   39243           0 :  i3 = _luaL_len(i1, 1) | 0;
   39244           0 :  _luaL_checkstack(i1, 40, 8208);
   39245           0 :  if ((_lua_type(i1, 2) | 0) >= 1) {
   39246           0 :   _luaL_checktype(i1, 2, 6);
   39247           0 :  }
   39248           0 :  _lua_settop(i1, 2);
   39249           0 :  _auxsort(i1, 1, i3);
   39250           0 :  STACKTOP = i2;
   39251           0 :  return 0;
   39252           1 : }
   39253           1 : function _luaB_error(i1) {
   39254           0 :  i1 = i1 | 0;
   39255           0 :  var i2 = 0;
   39256           0 :  i2 = _luaL_optinteger(i1, 2, 1) | 0;
   39257           0 :  _lua_settop(i1, 1);
   39258           0 :  if (!((_lua_isstring(i1, 1) | 0) != 0 & (i2 | 0) > 0)) {
   39259           0 :   _lua_error(i1) | 0;
   39260           0 :  }
   39261           0 :  _luaL_where(i1, i2);
   39262           0 :  _lua_pushvalue(i1, 1);
   39263           0 :  _lua_concat(i1, 2);
   39264           0 :  _lua_error(i1) | 0;
   39265           0 :  return 0;
   39266           1 : }
   39267           1 : function _error(i1, i2) {
   39268           0 :  i1 = i1 | 0;
   39269           0 :  i2 = i2 | 0;
   39270           0 :  var i3 = 0, i4 = 0;
   39271           0 :  i3 = STACKTOP;
   39272           0 :  STACKTOP = STACKTOP + 16 | 0;
   39273           0 :  i4 = HEAP32[i1 >> 2] | 0;
   39274           0 :  HEAP32[i3 >> 2] = HEAP32[i1 + 12 >> 2];
   39275           0 :  HEAP32[i3 + 4 >> 2] = i2;
   39276           0 :  _luaO_pushfstring(i4, 8840, i3) | 0;
   39277           0 :  _luaD_throw(HEAP32[i1 >> 2] | 0, 3);
   39278           1 : }
   39279           1 : function _ipairsaux(i1) {
   39280           0 :  i1 = i1 | 0;
   39281           0 :  var i2 = 0, i3 = 0;
   39282           0 :  i2 = STACKTOP;
   39283           0 :  i3 = _luaL_checkinteger(i1, 2) | 0;
   39284           0 :  _luaL_checktype(i1, 1, 5);
   39285           0 :  i3 = i3 + 1 | 0;
   39286           0 :  _lua_pushinteger(i1, i3);
   39287           0 :  _lua_rawgeti(i1, 1, i3);
   39288           0 :  i1 = (_lua_type(i1, -1) | 0) == 0;
   39289           0 :  STACKTOP = i2;
   39290           0 :  return (i1 ? 1 : 2) | 0;
   39291           1 : }
   39292           1 : function _panic(i1) {
   39293           0 :  i1 = i1 | 0;
   39294           0 :  var i2 = 0, i3 = 0, i4 = 0;
   39295           0 :  i2 = STACKTOP;
   39296           0 :  STACKTOP = STACKTOP + 16 | 0;
   39297           0 :  i4 = i2;
   39298           0 :  i3 = HEAP32[_stderr >> 2] | 0;
   39299           0 :  HEAP32[i4 >> 2] = _lua_tolstring(i1, -1, 0) | 0;
   39300           0 :  _fprintf(i3 | 0, 1656, i4 | 0) | 0;
   39301           0 :  _fflush(i3 | 0) | 0;
   39302           0 :  STACKTOP = i2;
   39303           0 :  return 0;
   39304           1 : }
   39305           1 : function _testSetjmp(i1, i2) {
   39306           0 :  i1 = i1 | 0;
   39307           0 :  i2 = i2 | 0;
   39308           0 :  var i3 = 0, i4 = 0;
   39309           0 :  while ((i3 | 0) < 20) {
   39310           0 :   i4 = HEAP32[i2 + (i3 << 2) >> 2] | 0;
   39311           0 :   if ((i4 | 0) == 0) break;
   39312           0 :   if ((i4 | 0) == (i1 | 0)) {
   39313           0 :    return HEAP32[i2 + ((i3 << 2) + 4) >> 2] | 0;
   39314           0 :   }
   39315           0 :   i3 = i3 + 2 | 0;
   39316           0 :  }
   39317           0 :  return 0;
   39318           1 : }
   39319           1 : function _luaopen_math(i1) {
   39320           1 :  i1 = i1 | 0;
   39321           1 :  var i2 = 0;
   39322           1 :  i2 = STACKTOP;
   39323           1 :  _lua_createtable(i1, 0, 28);
   39324           1 :  _luaL_setfuncs(i1, 3576, 0);
   39325           1 :  _lua_pushnumber(i1, 3.141592653589793);
   39326           1 :  _lua_setfield(i1, -2, 3808);
   39327           1 :  _lua_pushnumber(i1, inf);
   39328           1 :  _lua_setfield(i1, -2, 3816);
   39329           1 :  STACKTOP = i2;
   39330           1 :  return 1;
   39331           1 : }
   39332           1 : function _luaopen_base(i1) {
   39333           1 :  i1 = i1 | 0;
   39334           1 :  var i2 = 0;
   39335           1 :  i2 = STACKTOP;
   39336           1 :  _lua_rawgeti(i1, -1001e3, 2);
   39337           1 :  _lua_rawgeti(i1, -1001e3, 2);
   39338           1 :  _lua_setfield(i1, -2, 9144);
   39339           1 :  _luaL_setfuncs(i1, 9152, 0);
   39340           1 :  _lua_pushlstring(i1, 9344, 7) | 0;
   39341           1 :  _lua_setfield(i1, -2, 9352);
   39342           1 :  STACKTOP = i2;
   39343           1 :  return 1;
   39344           1 : }
   39345          46 : function _luaE_extendCI(i1) {
   39346          46 :  i1 = i1 | 0;
   39347          46 :  var i2 = 0, i3 = 0;
   39348          46 :  i3 = STACKTOP;
   39349          46 :  i2 = _luaM_realloc_(i1, 0, 0, 40) | 0;
   39350          46 :  i1 = i1 + 16 | 0;
   39351          46 :  HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] = i2;
   39352          46 :  HEAP32[i2 + 8 >> 2] = HEAP32[i1 >> 2];
   39353          46 :  HEAP32[i2 + 12 >> 2] = 0;
   39354          46 :  STACKTOP = i3;
   39355          46 :  return i2 | 0;
   39356          46 : }
   39357           1 : function _luaB_getmetatable(i1) {
   39358           0 :  i1 = i1 | 0;
   39359           0 :  var i2 = 0;
   39360           0 :  i2 = STACKTOP;
   39361           0 :  _luaL_checkany(i1, 1);
   39362           0 :  if ((_lua_getmetatable(i1, 1) | 0) == 0) {
   39363           0 :   _lua_pushnil(i1);
   39364           0 :   STACKTOP = i2;
   39365           0 :   return 1;
   39366           0 :  } else {
   39367           0 :   _luaL_getmetafield(i1, 1, 9704) | 0;
   39368           0 :   STACKTOP = i2;
   39369           0 :   return 1;
   39370           0 :  }
   39371           0 :  return 0;
   39372           1 : }
   39373           1 : function _lua_pushunsigned(i1, i2) {
   39374           0 :  i1 = i1 | 0;
   39375           0 :  i2 = i2 | 0;
   39376           0 :  var d3 = 0.0;
   39377           0 :  if ((i2 | 0) > -1) {
   39378           0 :   d3 = +(i2 | 0);
   39379           0 :  } else {
   39380           0 :   d3 = +(i2 >>> 0);
   39381           0 :  }
   39382           0 :  i2 = i1 + 8 | 0;
   39383           0 :  i1 = HEAP32[i2 >> 2] | 0;
   39384           0 :  HEAPF64[i1 >> 3] = d3;
   39385           0 :  HEAP32[i1 + 8 >> 2] = 3;
   39386           0 :  HEAP32[i2 >> 2] = i1 + 16;
   39387           0 :  return;
   39388           1 : }
   39389           1 : function _lua_pushthread(i1) {
   39390           0 :  i1 = i1 | 0;
   39391           0 :  var i2 = 0, i3 = 0;
   39392           0 :  i2 = i1 + 8 | 0;
   39393           0 :  i3 = HEAP32[i2 >> 2] | 0;
   39394           0 :  HEAP32[i3 >> 2] = i1;
   39395           0 :  HEAP32[i3 + 8 >> 2] = 72;
   39396           0 :  HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + 16;
   39397           0 :  return (HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 172 >> 2] | 0) == (i1 | 0) | 0;
   39398           1 : }
   39399           1 : function _gctm(i1) {
   39400           1 :  i1 = i1 | 0;
   39401           1 :  var i2 = 0, i3 = 0;
   39402           1 :  i2 = STACKTOP;
   39403           1 :  i3 = _luaL_len(i1, 1) | 0;
   39404           1 :  if ((i3 | 0) <= 0) {
   39405           1 :   STACKTOP = i2;
   39406           1 :   return 0;
   39407           1 :  }
   39408           1 :  do {
   39409           1 :   _lua_rawgeti(i1, 1, i3);
   39410           1 :   _lua_settop(i1, -2);
   39411           1 :   i3 = i3 + -1 | 0;
   39412           1 :  } while ((i3 | 0) > 0);
   39413           1 :  STACKTOP = i2;
   39414           1 :  return 0;
   39415           1 : }
   39416           1 : function ___muldi3(i4, i2, i3, i1) {
   39417           0 :  i4 = i4 | 0;
   39418           0 :  i2 = i2 | 0;
   39419           0 :  i3 = i3 | 0;
   39420           0 :  i1 = i1 | 0;
   39421           0 :  var i5 = 0, i6 = 0;
   39422           0 :  i5 = i4;
   39423           0 :  i6 = i3;
   39424           0 :  i4 = ___muldsi3(i5, i6) | 0;
   39425           0 :  i3 = tempRet0;
   39426           0 :  return (tempRet0 = (Math_imul(i2, i6) | 0) + (Math_imul(i1, i5) | 0) + i3 | i3 & 0, i4 | 0 | 0) | 0;
   39427           1 : }
   39428           1 : function _luaH_resizearray(i1, i3, i4) {
   39429           0 :  i1 = i1 | 0;
   39430           0 :  i3 = i3 | 0;
   39431           0 :  i4 = i4 | 0;
   39432           0 :  var i2 = 0, i5 = 0;
   39433           0 :  i2 = STACKTOP;
   39434           0 :  if ((HEAP32[i3 + 16 >> 2] | 0) == 8016) {
   39435           0 :   i5 = 0;
   39436           0 :  } else {
   39437           0 :   i5 = 1 << (HEAPU8[i3 + 7 | 0] | 0);
   39438           0 :  }
   39439           0 :  _luaH_resize(i1, i3, i4, i5);
   39440           0 :  STACKTOP = i2;
   39441           0 :  return;
   39442           1 : }
   39443          18 : function _luaK_stringK(i1, i2) {
   39444          18 :  i1 = i1 | 0;
   39445          18 :  i2 = i2 | 0;
   39446          18 :  var i3 = 0, i4 = 0;
   39447          18 :  i3 = STACKTOP;
   39448          18 :  STACKTOP = STACKTOP + 16 | 0;
   39449          18 :  i4 = i3;
   39450          18 :  HEAP32[i4 >> 2] = i2;
   39451          18 :  HEAP32[i4 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64;
   39452          18 :  i2 = _addk(i1, i4, i4) | 0;
   39453          18 :  STACKTOP = i3;
   39454          18 :  return i2 | 0;
   39455          18 : }
   39456           1 : function _math_modf(i1) {
   39457           0 :  i1 = i1 | 0;
   39458           0 :  var i2 = 0, d3 = 0.0, i4 = 0;
   39459           0 :  i2 = STACKTOP;
   39460           0 :  STACKTOP = STACKTOP + 16 | 0;
   39461           0 :  i4 = i2;
   39462           0 :  d3 = +_modf(+(+_luaL_checknumber(i1, 1)), i4 | 0);
   39463           0 :  _lua_pushnumber(i1, +HEAPF64[i4 >> 3]);
   39464           0 :  _lua_pushnumber(i1, d3);
   39465           0 :  STACKTOP = i2;
   39466           0 :  return 2;
   39467           1 : }
   39468           1 : function _os_setlocale(i1) {
   39469           0 :  i1 = i1 | 0;
   39470           0 :  var i2 = 0, i3 = 0;
   39471           0 :  i2 = STACKTOP;
   39472           0 :  i3 = _luaL_optlstring(i1, 1, 0, 0) | 0;
   39473           0 :  _lua_pushstring(i1, _setlocale(HEAP32[5960 + ((_luaL_checkoption(i1, 2, 6016, 5984) | 0) << 2) >> 2] | 0, i3 | 0) | 0) | 0;
   39474           0 :  STACKTOP = i2;
   39475           0 :  return 1;
   39476           1 : }
   39477           1 : function _luaB_pcall(i1) {
   39478           0 :  i1 = i1 | 0;
   39479           0 :  var i2 = 0;
   39480           0 :  i2 = STACKTOP;
   39481           0 :  _luaL_checkany(i1, 1);
   39482           0 :  _lua_pushnil(i1);
   39483           0 :  _lua_insert(i1, 1);
   39484           0 :  i1 = _finishpcall(i1, (_lua_pcallk(i1, (_lua_gettop(i1) | 0) + -2 | 0, -1, 0, 0, 166) | 0) == 0 | 0) | 0;
   39485           0 :  STACKTOP = i2;
   39486           0 :  return i1 | 0;
   39487           1 : }
   39488           1 : function _error_expected(i1, i2) {
   39489           0 :  i1 = i1 | 0;
   39490           0 :  i2 = i2 | 0;
   39491           0 :  var i3 = 0, i4 = 0;
   39492           0 :  i3 = STACKTOP;
   39493           0 :  STACKTOP = STACKTOP + 16 | 0;
   39494           0 :  i4 = HEAP32[i1 + 52 >> 2] | 0;
   39495           0 :  HEAP32[i3 >> 2] = _luaX_token2str(i1, i2) | 0;
   39496           0 :  _luaX_syntaxerror(i1, _luaO_pushfstring(i4, 6328, i3) | 0);
   39497           1 : }
   39498           1 : function _lua_pushvfstring(i1, i3, i4) {
   39499           0 :  i1 = i1 | 0;
   39500           0 :  i3 = i3 | 0;
   39501           0 :  i4 = i4 | 0;
   39502           0 :  var i2 = 0;
   39503           0 :  i2 = STACKTOP;
   39504           0 :  if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
   39505           0 :   _luaC_step(i1);
   39506           0 :  }
   39507           0 :  i4 = _luaO_pushvfstring(i1, i3, i4) | 0;
   39508           0 :  STACKTOP = i2;
   39509           0 :  return i4 | 0;
   39510           1 : }
   39511           1 : function _db_setmetatable(i1) {
   39512           0 :  i1 = i1 | 0;
   39513           0 :  var i2 = 0, i3 = 0;
   39514           0 :  i2 = STACKTOP;
   39515           0 :  i3 = _lua_type(i1, 2) | 0;
   39516           0 :  if (!((i3 | 0) == 0 | (i3 | 0) == 5)) {
   39517           0 :   _luaL_argerror(i1, 2, 11536) | 0;
   39518           0 :  }
   39519           0 :  _lua_settop(i1, 2);
   39520           0 :  _lua_setmetatable(i1, 1) | 0;
   39521           0 :  STACKTOP = i2;
   39522           0 :  return 1;
   39523           1 : }
   39524           1 : function _b_rrot(i1) {
   39525           0 :  i1 = i1 | 0;
   39526           0 :  var i2 = 0, i3 = 0, i4 = 0;
   39527           0 :  i2 = STACKTOP;
   39528           0 :  i3 = 0 - (_luaL_checkinteger(i1, 2) | 0) | 0;
   39529           0 :  i4 = _luaL_checkunsigned(i1, 1) | 0;
   39530           0 :  i3 = i3 & 31;
   39531           0 :  _lua_pushunsigned(i1, i4 >>> (32 - i3 | 0) | i4 << i3);
   39532           0 :  STACKTOP = i2;
   39533           0 :  return 1;
   39534           1 : }
   39535        2865 : function _luaC_step(i1) {
   39536        2865 :  i1 = i1 | 0;
   39537        2865 :  var i2 = 0, i3 = 0;
   39538        2865 :  i2 = STACKTOP;
   39539        2865 :  i3 = HEAP32[i1 + 12 >> 2] | 0;
   39540        2865 :  if ((HEAP8[i3 + 63 | 0] | 0) == 0) {
   39541        2865 :   _luaE_setdebt(i3, -1600);
   39542        2865 :   STACKTOP = i2;
   39543        2865 :   return;
   39544        2865 :  } else {
   39545        2865 :   _luaC_forcestep(i1);
   39546        2865 :   STACKTOP = i2;
   39547        2865 :   return;
   39548        2865 :  }
   39549        2865 : }
   39550           1 : function _math_frexp(i1) {
   39551           0 :  i1 = i1 | 0;
   39552           0 :  var i2 = 0, i3 = 0;
   39553           0 :  i2 = STACKTOP;
   39554           0 :  STACKTOP = STACKTOP + 16 | 0;
   39555           0 :  i3 = i2;
   39556           0 :  _lua_pushnumber(i1, +_frexp(+(+_luaL_checknumber(i1, 1)), i3 | 0));
   39557           0 :  _lua_pushinteger(i1, HEAP32[i3 >> 2] | 0);
   39558           0 :  STACKTOP = i2;
   39559           0 :  return 2;
   39560           1 : }
   39561           1 : function _luaO_pushfstring(i2, i1, i3) {
   39562           0 :  i2 = i2 | 0;
   39563           0 :  i1 = i1 | 0;
   39564           0 :  i3 = i3 | 0;
   39565           0 :  var i4 = 0, i5 = 0;
   39566           0 :  i4 = STACKTOP;
   39567           0 :  STACKTOP = STACKTOP + 16 | 0;
   39568           0 :  i5 = i4;
   39569           0 :  HEAP32[i5 >> 2] = i3;
   39570           0 :  i3 = _luaO_pushvfstring(i2, i1, i5) | 0;
   39571           0 :  STACKTOP = i4;
   39572           0 :  return i3 | 0;
   39573           1 : }
   39574           1 : function _luaO_hexavalue(i1) {
   39575           0 :  i1 = i1 | 0;
   39576           0 :  var i2 = 0;
   39577           0 :  i2 = STACKTOP;
   39578           0 :  if ((HEAP8[i1 + 10913 | 0] & 2) == 0) {
   39579           0 :   i1 = (i1 | 32) + -87 | 0;
   39580           0 :   STACKTOP = i2;
   39581           0 :   return i1 | 0;
   39582           0 :  } else {
   39583           0 :   i1 = i1 + -48 | 0;
   39584           0 :   STACKTOP = i2;
   39585           0 :   return i1 | 0;
   39586           0 :  }
   39587           0 :  return 0;
   39588           1 : }
   39589           1 : function _b_lrot(i1) {
   39590           0 :  i1 = i1 | 0;
   39591           0 :  var i2 = 0, i3 = 0, i4 = 0;
   39592           0 :  i2 = STACKTOP;
   39593           0 :  i3 = _luaL_checkinteger(i1, 2) | 0;
   39594           0 :  i4 = _luaL_checkunsigned(i1, 1) | 0;
   39595           0 :  i3 = i3 & 31;
   39596           0 :  _lua_pushunsigned(i1, i4 >>> (32 - i3 | 0) | i4 << i3);
   39597           0 :  STACKTOP = i2;
   39598           0 :  return 1;
   39599           1 : }
   39600           1 : function _f_lines(i1) {
   39601           0 :  i1 = i1 | 0;
   39602           0 :  var i2 = 0;
   39603           0 :  i2 = STACKTOP;
   39604           0 :  STACKTOP = STACKTOP + 16 | 0;
   39605           0 :  if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) == 0) {
   39606           0 :   _luaL_error(i1, 3080, i2) | 0;
   39607           0 :  }
   39608           0 :  _aux_lines(i1, 0);
   39609           0 :  STACKTOP = i2;
   39610           0 :  return 1;
   39611           1 : }
   39612           1 : function _luaC_barrierback_(i2, i1) {
   39613           0 :  i2 = i2 | 0;
   39614           0 :  i1 = i1 | 0;
   39615           0 :  var i3 = 0;
   39616           0 :  i2 = HEAP32[i2 + 12 >> 2] | 0;
   39617           0 :  i3 = i1 + 5 | 0;
   39618           0 :  HEAP8[i3] = HEAP8[i3] & 251;
   39619           0 :  i2 = i2 + 88 | 0;
   39620           0 :  HEAP32[i1 + 24 >> 2] = HEAP32[i2 >> 2];
   39621           0 :  HEAP32[i2 >> 2] = i1;
   39622           0 :  return;
   39623           1 : }
   39624           1 : function _os_rename(i1) {
   39625           0 :  i1 = i1 | 0;
   39626           0 :  var i2 = 0, i3 = 0;
   39627           0 :  i2 = STACKTOP;
   39628           0 :  i3 = _luaL_checklstring(i1, 1, 0) | 0;
   39629           0 :  i1 = _luaL_fileresult(i1, (_rename(i3 | 0, _luaL_checklstring(i1, 2, 0) | 0) | 0) == 0 | 0, 0) | 0;
   39630           0 :  STACKTOP = i2;
   39631           0 :  return i1 | 0;
   39632           1 : }
   39633           1 : function _bitshift64Ashr(i3, i2, i1) {
   39634           0 :  i3 = i3 | 0;
   39635           0 :  i2 = i2 | 0;
   39636           0 :  i1 = i1 | 0;
   39637           0 :  if ((i1 | 0) < 32) {
   39638           0 :   tempRet0 = i2 >> i1;
   39639           0 :   return i3 >>> i1 | (i2 & (1 << i1) - 1) << 32 - i1;
   39640           0 :  }
   39641           0 :  tempRet0 = (i2 | 0) < 0 ? -1 : 0;
   39642           0 :  return i2 >> i1 - 32 | 0;
   39643           1 : }
   39644           1 : function _luaB_cowrap(i1) {
   39645           0 :  i1 = i1 | 0;
   39646           0 :  var i2 = 0, i3 = 0;
   39647           0 :  i2 = STACKTOP;
   39648           0 :  _luaL_checktype(i1, 1, 6);
   39649           0 :  i3 = _lua_newthread(i1) | 0;
   39650           0 :  _lua_pushvalue(i1, 1);
   39651           0 :  _lua_xmove(i1, i3, 1);
   39652           0 :  _lua_pushcclosure(i1, 167, 1);
   39653           0 :  STACKTOP = i2;
   39654           0 :  return 1;
   39655           1 : }
   39656           1 : function _gmatch(i1) {
   39657           0 :  i1 = i1 | 0;
   39658           0 :  var i2 = 0;
   39659           0 :  i2 = STACKTOP;
   39660           0 :  _luaL_checklstring(i1, 1, 0) | 0;
   39661           0 :  _luaL_checklstring(i1, 2, 0) | 0;
   39662           0 :  _lua_settop(i1, 2);
   39663           0 :  _lua_pushinteger(i1, 0);
   39664           0 :  _lua_pushcclosure(i1, 163, 3);
   39665           0 :  STACKTOP = i2;
   39666           0 :  return 1;
   39667           1 : }
   39668           1 : function _luaB_next(i2) {
   39669           0 :  i2 = i2 | 0;
   39670           0 :  var i1 = 0;
   39671           0 :  i1 = STACKTOP;
   39672           0 :  _luaL_checktype(i2, 1, 5);
   39673           0 :  _lua_settop(i2, 2);
   39674           0 :  if ((_lua_next(i2, 1) | 0) == 0) {
   39675           0 :   _lua_pushnil(i2);
   39676           0 :   i2 = 1;
   39677           0 :  } else {
   39678           0 :   i2 = 2;
   39679           0 :  }
   39680           0 :  STACKTOP = i1;
   39681           0 :  return i2 | 0;
   39682           1 : }
   39683          21 : function _luaK_codeABC(i5, i3, i4, i2, i1) {
   39684          21 :  i5 = i5 | 0;
   39685          21 :  i3 = i3 | 0;
   39686          21 :  i4 = i4 | 0;
   39687          21 :  i2 = i2 | 0;
   39688          21 :  i1 = i1 | 0;
   39689          21 :  var i6 = 0;
   39690          21 :  i6 = STACKTOP;
   39691          21 :  i5 = _luaK_code(i5, i4 << 6 | i3 | i2 << 23 | i1 << 14) | 0;
   39692          21 :  STACKTOP = i6;
   39693          21 :  return i5 | 0;
   39694          21 : }
   39695         216 : function _luaH_set(i2, i4, i5) {
   39696         216 :  i2 = i2 | 0;
   39697         216 :  i4 = i4 | 0;
   39698         216 :  i5 = i5 | 0;
   39699         216 :  var i1 = 0, i3 = 0;
   39700         216 :  i1 = STACKTOP;
   39701         216 :  i3 = _luaH_get(i4, i5) | 0;
   39702         216 :  if ((i3 | 0) == 5192) {
   39703         216 :   i3 = _luaH_newkey(i2, i4, i5) | 0;
   39704         216 :  }
   39705         216 :  STACKTOP = i1;
   39706         216 :  return i3 | 0;
   39707         216 : }
   39708           1 : function _luaZ_init(i4, i1, i3, i2) {
   39709           1 :  i4 = i4 | 0;
   39710           1 :  i1 = i1 | 0;
   39711           1 :  i3 = i3 | 0;
   39712           1 :  i2 = i2 | 0;
   39713           1 :  HEAP32[i1 + 16 >> 2] = i4;
   39714           1 :  HEAP32[i1 + 8 >> 2] = i3;
   39715           1 :  HEAP32[i1 + 12 >> 2] = i2;
   39716           1 :  HEAP32[i1 >> 2] = 0;
   39717           1 :  HEAP32[i1 + 4 >> 2] = 0;
   39718           1 :  return;
   39719           1 : }
   39720           1 : function _lua_pushlightuserdata(i2, i1) {
   39721           1 :  i2 = i2 | 0;
   39722           1 :  i1 = i1 | 0;
   39723           1 :  var i3 = 0;
   39724           1 :  i2 = i2 + 8 | 0;
   39725           1 :  i3 = HEAP32[i2 >> 2] | 0;
   39726           1 :  HEAP32[i3 >> 2] = i1;
   39727           1 :  HEAP32[i3 + 8 >> 2] = 2;
   39728           1 :  HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + 16;
   39729           1 :  return;
   39730           1 : }
   39731           1 : function copyTempFloat(i1) {
   39732           0 :  i1 = i1 | 0;
   39733           0 :  HEAP8[tempDoublePtr] = HEAP8[i1];
   39734           0 :  HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
   39735           0 :  HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
   39736           0 :  HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
   39737           1 : }
   39738          29 : function _bitshift64Shl(i2, i3, i1) {
   39739          29 :  i2 = i2 | 0;
   39740          29 :  i3 = i3 | 0;
   39741          29 :  i1 = i1 | 0;
   39742          29 :  if ((i1 | 0) < 32) {
   39743          29 :   tempRet0 = i3 << i1 | (i2 & (1 << i1) - 1 << 32 - i1) >>> 32 - i1;
   39744          29 :   return i2 << i1;
   39745          29 :  }
   39746          29 :  tempRet0 = i2 << i1 - 32;
   39747          29 :  return 0;
   39748          29 : }
   39749           1 : function _luaB_rawlen(i1) {
   39750           0 :  i1 = i1 | 0;
   39751           0 :  var i2 = 0;
   39752           0 :  i2 = STACKTOP;
   39753           0 :  if (((_lua_type(i1, 1) | 0) & -2 | 0) != 4) {
   39754           0 :   _luaL_argerror(i1, 1, 9784) | 0;
   39755           0 :  }
   39756           0 :  _lua_pushinteger(i1, _lua_rawlen(i1, 1) | 0);
   39757           0 :  STACKTOP = i2;
   39758           0 :  return 1;
   39759           1 : }
   39760      572924 : function _l_alloc(i3, i1, i4, i2) {
   39761      572924 :  i3 = i3 | 0;
   39762      572924 :  i1 = i1 | 0;
   39763      572924 :  i4 = i4 | 0;
   39764      572924 :  i2 = i2 | 0;
   39765      572924 :  i3 = STACKTOP;
   39766      572924 :  if ((i2 | 0) == 0) {
   39767      572924 :   _free(i1);
   39768      572924 :   i1 = 0;
   39769      572924 :  } else {
   39770      572924 :   i1 = _realloc(i1, i2) | 0;
   39771      572924 :  }
   39772      572924 :  STACKTOP = i3;
   39773      572924 :  return i1 | 0;
   39774      572924 : }
   39775           1 : function _bitshift64Lshr(i3, i2, i1) {
   39776           0 :  i3 = i3 | 0;
   39777           0 :  i2 = i2 | 0;
   39778           0 :  i1 = i1 | 0;
   39779           0 :  if ((i1 | 0) < 32) {
   39780           0 :   tempRet0 = i2 >>> i1;
   39781           0 :   return i3 >>> i1 | (i2 & (1 << i1) - 1) << 32 - i1;
   39782           0 :  }
   39783           0 :  tempRet0 = 0;
   39784           0 :  return i2 >>> i1 - 32 | 0;
   39785           1 : }
   39786           1 : function _luaG_aritherror(i3, i1, i2) {
   39787           0 :  i3 = i3 | 0;
   39788           0 :  i1 = i1 | 0;
   39789           0 :  i2 = i2 | 0;
   39790           0 :  var i4 = 0;
   39791           0 :  i4 = STACKTOP;
   39792           0 :  STACKTOP = STACKTOP + 16 | 0;
   39793           0 :  i4 = (_luaV_tonumber(i1, i4) | 0) == 0;
   39794           0 :  _luaG_typeerror(i3, i4 ? i1 : i2, 1928);
   39795           1 : }
   39796           1 : function _str_len(i1) {
   39797           0 :  i1 = i1 | 0;
   39798           0 :  var i2 = 0, i3 = 0;
   39799           0 :  i2 = STACKTOP;
   39800           0 :  STACKTOP = STACKTOP + 16 | 0;
   39801           0 :  i3 = i2;
   39802           0 :  _luaL_checklstring(i1, 1, i3) | 0;
   39803           0 :  _lua_pushinteger(i1, HEAP32[i3 >> 2] | 0);
   39804           0 :  STACKTOP = i2;
   39805           0 :  return 1;
   39806           1 : }
   39807           1 : function _luaL_optinteger(i3, i4, i2) {
   39808           0 :  i3 = i3 | 0;
   39809           0 :  i4 = i4 | 0;
   39810           0 :  i2 = i2 | 0;
   39811           0 :  var i1 = 0;
   39812           0 :  i1 = STACKTOP;
   39813           0 :  if ((_lua_type(i3, i4) | 0) >= 1) {
   39814           0 :   i2 = _luaL_checkinteger(i3, i4) | 0;
   39815           0 :  }
   39816           0 :  STACKTOP = i1;
   39817           0 :  return i2 | 0;
   39818           1 : }
   39819           1 : function _os_difftime(i1) {
   39820           0 :  i1 = i1 | 0;
   39821           0 :  var i2 = 0, i3 = 0;
   39822           0 :  i2 = STACKTOP;
   39823           0 :  i3 = ~~+_luaL_checknumber(i1, 1);
   39824           0 :  _lua_pushnumber(i1, +_difftime(i3 | 0, ~~+_luaL_optnumber(i1, 2, 0.0) | 0));
   39825           0 :  STACKTOP = i2;
   39826           0 :  return 1;
   39827           1 : }
   39828           1 : function _lua_pushboolean(i2, i1) {
   39829           1 :  i2 = i2 | 0;
   39830           1 :  i1 = i1 | 0;
   39831           1 :  var i3 = 0;
   39832           1 :  i2 = i2 + 8 | 0;
   39833           1 :  i3 = HEAP32[i2 >> 2] | 0;
   39834           1 :  HEAP32[i3 >> 2] = (i1 | 0) != 0;
   39835           1 :  HEAP32[i3 + 8 >> 2] = 1;
   39836           1 :  HEAP32[i2 >> 2] = i3 + 16;
   39837           1 :  return;
   39838           1 : }
   39839           1 : function _os_remove(i1) {
   39840           0 :  i1 = i1 | 0;
   39841           0 :  var i2 = 0, i3 = 0;
   39842           0 :  i2 = STACKTOP;
   39843           0 :  i3 = _luaL_checklstring(i1, 1, 0) | 0;
   39844           0 :  i1 = _luaL_fileresult(i1, (_remove(i3 | 0) | 0) == 0 | 0, i3) | 0;
   39845           0 :  STACKTOP = i2;
   39846           0 :  return i1 | 0;
   39847           1 : }
   39848           1 : function _luaopen_table(i1) {
   39849           1 :  i1 = i1 | 0;
   39850           1 :  var i2 = 0;
   39851           1 :  i2 = STACKTOP;
   39852           1 :  _lua_createtable(i1, 0, 7);
   39853           1 :  _luaL_setfuncs(i1, 8088, 0);
   39854           1 :  _lua_getfield(i1, -1, 8152);
   39855           1 :  _lua_setglobal(i1, 8152);
   39856           1 :  STACKTOP = i2;
   39857           1 :  return 1;
   39858           1 : }
   39859           1 : function _lua_pushinteger(i2, i1) {
   39860           1 :  i2 = i2 | 0;
   39861           1 :  i1 = i1 | 0;
   39862           1 :  var i3 = 0;
   39863           1 :  i2 = i2 + 8 | 0;
   39864           1 :  i3 = HEAP32[i2 >> 2] | 0;
   39865           1 :  HEAPF64[i3 >> 3] = +(i1 | 0);
   39866           1 :  HEAP32[i3 + 8 >> 2] = 3;
   39867           1 :  HEAP32[i2 >> 2] = i3 + 16;
   39868           1 :  return;
   39869           1 : }
   39870           1 : function _luaB_rawset(i1) {
   39871           0 :  i1 = i1 | 0;
   39872           0 :  var i2 = 0;
   39873           0 :  i2 = STACKTOP;
   39874           0 :  _luaL_checktype(i1, 1, 5);
   39875           0 :  _luaL_checkany(i1, 2);
   39876           0 :  _luaL_checkany(i1, 3);
   39877           0 :  _lua_settop(i1, 3);
   39878           0 :  _lua_rawset(i1, 1);
   39879           0 :  STACKTOP = i2;
   39880           0 :  return 1;
   39881           1 : }
   39882        2866 : function _luaE_setdebt(i2, i1) {
   39883        2866 :  i2 = i2 | 0;
   39884        2866 :  i1 = i1 | 0;
   39885        2866 :  var i3 = 0;
   39886        2866 :  i3 = i2 + 12 | 0;
   39887        2866 :  i2 = i2 + 8 | 0;
   39888        2866 :  HEAP32[i2 >> 2] = (HEAP32[i3 >> 2] | 0) - i1 + (HEAP32[i2 >> 2] | 0);
   39889        2866 :  HEAP32[i3 >> 2] = i1;
   39890        2866 :  return;
   39891        2866 : }
   39892           1 : function _luaB_cocreate(i1) {
   39893           0 :  i1 = i1 | 0;
   39894           0 :  var i2 = 0, i3 = 0;
   39895           0 :  i2 = STACKTOP;
   39896           0 :  _luaL_checktype(i1, 1, 6);
   39897           0 :  i3 = _lua_newthread(i1) | 0;
   39898           0 :  _lua_pushvalue(i1, 1);
   39899           0 :  _lua_xmove(i1, i3, 1);
   39900           0 :  STACKTOP = i2;
   39901           0 :  return 1;
   39902           1 : }
   39903           3 : function _io_noclose(i1) {
   39904           3 :  i1 = i1 | 0;
   39905           3 :  var i2 = 0;
   39906           3 :  i2 = STACKTOP;
   39907           3 :  HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] = 154;
   39908           3 :  _lua_pushnil(i1);
   39909           3 :  _lua_pushlstring(i1, 2840, 26) | 0;
   39910           3 :  STACKTOP = i2;
   39911           3 :  return 2;
   39912           3 : }
   39913           1 : function _io_fclose(i1) {
   39914           0 :  i1 = i1 | 0;
   39915           0 :  var i2 = 0;
   39916           0 :  i2 = STACKTOP;
   39917           0 :  i1 = _luaL_fileresult(i1, (_fclose(HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) >> 2] | 0) | 0) == 0 | 0, 0) | 0;
   39918           0 :  STACKTOP = i2;
   39919           0 :  return i1 | 0;
   39920           1 : }
   39921           1 : function _luaL_optnumber(i3, i4, d2) {
   39922           0 :  i3 = i3 | 0;
   39923           0 :  i4 = i4 | 0;
   39924           0 :  d2 = +d2;
   39925           0 :  var i1 = 0;
   39926           0 :  i1 = STACKTOP;
   39927           0 :  if ((_lua_type(i3, i4) | 0) >= 1) {
   39928           0 :   d2 = +_luaL_checknumber(i3, i4);
   39929           0 :  }
   39930           0 :  STACKTOP = i1;
   39931           0 :  return +d2;
   39932           1 : }
   39933           1 : function _math_atan2(i1) {
   39934           0 :  i1 = i1 | 0;
   39935           0 :  var i2 = 0, d3 = 0.0;
   39936           0 :  i2 = STACKTOP;
   39937           0 :  d3 = +_luaL_checknumber(i1, 1);
   39938           0 :  _lua_pushnumber(i1, +Math_atan2(+d3, +(+_luaL_checknumber(i1, 2))));
   39939           0 :  STACKTOP = i2;
   39940           0 :  return 1;
   39941           1 : }
   39942           6 : function _luaK_codeABx(i4, i2, i3, i1) {
   39943           6 :  i4 = i4 | 0;
   39944           6 :  i2 = i2 | 0;
   39945           6 :  i3 = i3 | 0;
   39946           6 :  i1 = i1 | 0;
   39947           6 :  var i5 = 0;
   39948           6 :  i5 = STACKTOP;
   39949           6 :  i4 = _luaK_code(i4, i3 << 6 | i2 | i1 << 14) | 0;
   39950           6 :  STACKTOP = i5;
   39951           6 :  return i4 | 0;
   39952           6 : }
   39953           6 : function _luaF_newCclosure(i2, i1) {
   39954           6 :  i2 = i2 | 0;
   39955           6 :  i1 = i1 | 0;
   39956           6 :  var i3 = 0;
   39957           6 :  i3 = STACKTOP;
   39958           6 :  i2 = _luaC_newobj(i2, 38, (i1 << 4) + 16 | 0, 0, 0) | 0;
   39959           6 :  HEAP8[i2 + 6 | 0] = i1;
   39960           6 :  STACKTOP = i3;
   39961           6 :  return i2 | 0;
   39962           6 : }
   39963           1 : function _math_pow(i1) {
   39964           0 :  i1 = i1 | 0;
   39965           0 :  var i2 = 0, d3 = 0.0;
   39966           0 :  i2 = STACKTOP;
   39967           0 :  d3 = +_luaL_checknumber(i1, 1);
   39968           0 :  _lua_pushnumber(i1, +Math_pow(+d3, +(+_luaL_checknumber(i1, 2))));
   39969           0 :  STACKTOP = i2;
   39970           0 :  return 1;
   39971           1 : }
   39972           1 : function _math_ldexp(i1) {
   39973           0 :  i1 = i1 | 0;
   39974           0 :  var i2 = 0, d3 = 0.0;
   39975           0 :  i2 = STACKTOP;
   39976           0 :  d3 = +_luaL_checknumber(i1, 1);
   39977           0 :  _lua_pushnumber(i1, +_ldexp(d3, _luaL_checkinteger(i1, 2) | 0));
   39978           0 :  STACKTOP = i2;
   39979           0 :  return 1;
   39980           1 : }
   39981           1 : function _luaF_newupval(i1) {
   39982           1 :  i1 = i1 | 0;
   39983           1 :  var i2 = 0;
   39984           1 :  i2 = STACKTOP;
   39985           1 :  i1 = _luaC_newobj(i1, 10, 32, 0, 0) | 0;
   39986           1 :  HEAP32[i1 + 8 >> 2] = i1 + 16;
   39987           1 :  HEAP32[i1 + 24 >> 2] = 0;
   39988           1 :  STACKTOP = i2;
   39989           1 :  return i1 | 0;
   39990           1 : }
   39991          16 : function _lua_pushnumber(i2, d1) {
   39992          16 :  i2 = i2 | 0;
   39993          16 :  d1 = +d1;
   39994          16 :  var i3 = 0;
   39995          16 :  i2 = i2 + 8 | 0;
   39996          16 :  i3 = HEAP32[i2 >> 2] | 0;
   39997          16 :  HEAPF64[i3 >> 3] = d1;
   39998          16 :  HEAP32[i3 + 8 >> 2] = 3;
   39999          16 :  HEAP32[i2 >> 2] = i3 + 16;
   40000          16 :  return;
   40001          16 : }
   40002           1 : function _math_fmod(i1) {
   40003           0 :  i1 = i1 | 0;
   40004           0 :  var i2 = 0, d3 = 0.0;
   40005           0 :  i2 = STACKTOP;
   40006           0 :  d3 = +_luaL_checknumber(i1, 1);
   40007           0 :  _lua_pushnumber(i1, +_fmod(+d3, +(+_luaL_checknumber(i1, 2))));
   40008           0 :  STACKTOP = i2;
   40009           0 :  return 1;
   40010           1 : }
   40011           1 : function _luaG_concaterror(i3, i2, i1) {
   40012           0 :  i3 = i3 | 0;
   40013           0 :  i2 = i2 | 0;
   40014           0 :  i1 = i1 | 0;
   40015           0 :  var i4 = 0;
   40016           0 :  i4 = HEAP32[i2 + 8 >> 2] | 0;
   40017           0 :  _luaG_typeerror(i3, (i4 & 15 | 0) == 4 | (i4 | 0) == 3 ? i1 : i2, 1912);
   40018           1 : }
   40019           1 : function _luaB_rawequal(i1) {
   40020           0 :  i1 = i1 | 0;
   40021           0 :  var i2 = 0;
   40022           0 :  i2 = STACKTOP;
   40023           0 :  _luaL_checkany(i1, 1);
   40024           0 :  _luaL_checkany(i1, 2);
   40025           0 :  _lua_pushboolean(i1, _lua_rawequal(i1, 1, 2) | 0);
   40026           0 :  STACKTOP = i2;
   40027           0 :  return 1;
   40028           1 : }
   40029           1 : function _db_getuservalue(i1) {
   40030           0 :  i1 = i1 | 0;
   40031           0 :  var i2 = 0;
   40032           0 :  i2 = STACKTOP;
   40033           0 :  if ((_lua_type(i1, 1) | 0) == 7) {
   40034           0 :   _lua_getuservalue(i1, 1);
   40035           0 :  } else {
   40036           0 :   _lua_pushnil(i1);
   40037           0 :  }
   40038           0 :  STACKTOP = i2;
   40039           0 :  return 1;
   40040           1 : }
   40041           2 : function _strchr(i2, i1) {
   40042           2 :  i2 = i2 | 0;
   40043           2 :  i1 = i1 | 0;
   40044           2 :  var i3 = 0;
   40045           2 :  i3 = STACKTOP;
   40046           2 :  i2 = ___strchrnul(i2, i1) | 0;
   40047           2 :  STACKTOP = i3;
   40048           2 :  return ((HEAP8[i2] | 0) == (i1 & 255) << 24 >> 24 ? i2 : 0) | 0;
   40049           2 : }
   40050           1 : function runPostSets() {}
   40051           1 : function _rand_r(i1) {
   40052           0 :  i1 = i1 | 0;
   40053           0 :  var i2 = 0;
   40054           0 :  i2 = (Math_imul(HEAP32[i1 >> 2] | 0, 31010991) | 0) + 1735287159 & 2147483647;
   40055           0 :  HEAP32[i1 >> 2] = i2;
   40056           0 :  return i2 | 0;
   40057           1 : }
   40058           1 : function _luaL_checkany(i1, i3) {
   40059           0 :  i1 = i1 | 0;
   40060           0 :  i3 = i3 | 0;
   40061           0 :  var i2 = 0;
   40062           0 :  i2 = STACKTOP;
   40063           0 :  if ((_lua_type(i1, i3) | 0) == -1) {
   40064           0 :   _luaL_argerror(i1, i3, 1256) | 0;
   40065           0 :  }
   40066           0 :  STACKTOP = i2;
   40067           0 :  return;
   40068           1 : }
   40069        1744 : function _i64Subtract(i2, i4, i1, i3) {
   40070        1744 :  i2 = i2 | 0;
   40071        1744 :  i4 = i4 | 0;
   40072        1744 :  i1 = i1 | 0;
   40073        1744 :  i3 = i3 | 0;
   40074        1744 :  i4 = i4 - i3 - (i1 >>> 0 > i2 >>> 0 | 0) >>> 0;
   40075        1744 :  return (tempRet0 = i4, i2 - i1 >>> 0 | 0) | 0;
   40076        1744 : }
   40077           1 : function _db_getmetatable(i1) {
   40078           0 :  i1 = i1 | 0;
   40079           0 :  var i2 = 0;
   40080           0 :  i2 = STACKTOP;
   40081           0 :  _luaL_checkany(i1, 1);
   40082           0 :  if ((_lua_getmetatable(i1, 1) | 0) == 0) {
   40083           0 :   _lua_pushnil(i1);
   40084           0 :  }
   40085           0 :  STACKTOP = i2;
   40086           0 :  return 1;
   40087           1 : }
   40088           1 : function _luaB_rawget(i1) {
   40089           0 :  i1 = i1 | 0;
   40090           0 :  var i2 = 0;
   40091           0 :  i2 = STACKTOP;
   40092           0 :  _luaL_checktype(i1, 1, 5);
   40093           0 :  _luaL_checkany(i1, 2);
   40094           0 :  _lua_settop(i1, 2);
   40095           0 :  _lua_rawget(i1, 1);
   40096           0 :  STACKTOP = i2;
   40097           0 :  return 1;
   40098           1 : }
   40099           1 : function _luaB_type(i1) {
   40100           0 :  i1 = i1 | 0;
   40101           0 :  var i2 = 0;
   40102           0 :  i2 = STACKTOP;
   40103           0 :  _luaL_checkany(i1, 1);
   40104           0 :  _lua_pushstring(i1, _lua_typename(i1, _lua_type(i1, 1) | 0) | 0) | 0;
   40105           0 :  STACKTOP = i2;
   40106           0 :  return 1;
   40107           1 : }
   40108           1 : function dynCall_iiiii(i5, i4, i3, i2, i1) {
   40109           0 :  i5 = i5 | 0;
   40110           0 :  i4 = i4 | 0;
   40111           0 :  i3 = i3 | 0;
   40112           0 :  i2 = i2 | 0;
   40113           0 :  i1 = i1 | 0;
   40114           0 :  return FUNCTION_TABLE_iiiii[i5 & 3](i4 | 0, i3 | 0, i2 | 0, i1 | 0) | 0;
   40115           1 : }
   40116           1 : function _lstop(i1, i2) {
   40117           0 :  i1 = i1 | 0;
   40118           0 :  i2 = i2 | 0;
   40119           0 :  i2 = STACKTOP;
   40120           0 :  STACKTOP = STACKTOP + 16 | 0;
   40121           0 :  _lua_sethook(i1, 0, 0, 0) | 0;
   40122           0 :  _luaL_error(i1, 200, i2) | 0;
   40123           0 :  STACKTOP = i2;
   40124           0 :  return;
   40125           1 : }
   40126         106 : function _i64Add(i1, i3, i4, i2) {
   40127         106 :  i1 = i1 | 0;
   40128         106 :  i3 = i3 | 0;
   40129         106 :  i4 = i4 | 0;
   40130         106 :  i2 = i2 | 0;
   40131         106 :  i4 = i1 + i4 >>> 0;
   40132         106 :  return (tempRet0 = i3 + i2 + (i4 >>> 0 < i1 >>> 0 | 0) >>> 0, i4 | 0) | 0;
   40133         106 : }
   40134           7 : function _luaK_ret(i3, i2, i1) {
   40135           7 :  i3 = i3 | 0;
   40136           7 :  i2 = i2 | 0;
   40137           7 :  i1 = i1 | 0;
   40138           7 :  var i4 = 0;
   40139           7 :  i4 = STACKTOP;
   40140           7 :  _luaK_code(i3, i2 << 6 | (i1 << 23) + 8388608 | 31) | 0;
   40141           7 :  STACKTOP = i4;
   40142           7 :  return;
   40143           7 : }
   40144          70 : function _strpbrk(i2, i1) {
   40145          70 :  i2 = i2 | 0;
   40146          70 :  i1 = i1 | 0;
   40147          70 :  var i3 = 0;
   40148          70 :  i3 = STACKTOP;
   40149          70 :  i1 = i2 + (_strcspn(i2, i1) | 0) | 0;
   40150          70 :  STACKTOP = i3;
   40151          70 :  return ((HEAP8[i1] | 0) != 0 ? i1 : 0) | 0;
   40152          70 : }
   40153           3 : function _luaL_setmetatable(i1, i2) {
   40154           3 :  i1 = i1 | 0;
   40155           3 :  i2 = i2 | 0;
   40156           3 :  var i3 = 0;
   40157           3 :  i3 = STACKTOP;
   40158           3 :  _lua_getfield(i1, -1001e3, i2);
   40159           3 :  _lua_setmetatable(i1, -2) | 0;
   40160           3 :  STACKTOP = i3;
   40161           3 :  return;
   40162           3 : }
   40163           1 : function _lua_atpanic(i2, i1) {
   40164           1 :  i2 = i2 | 0;
   40165           1 :  i1 = i1 | 0;
   40166           1 :  var i3 = 0;
   40167           1 :  i3 = (HEAP32[i2 + 12 >> 2] | 0) + 168 | 0;
   40168           1 :  i2 = HEAP32[i3 >> 2] | 0;
   40169           1 :  HEAP32[i3 >> 2] = i1;
   40170           1 :  return i2 | 0;
   40171           1 : }
   40172           1 : function _luaL_newstate() {
   40173           1 :  var i1 = 0, i2 = 0;
   40174           1 :  i2 = STACKTOP;
   40175           1 :  i1 = _lua_newstate(1, 0) | 0;
   40176           1 :  if ((i1 | 0) != 0) {
   40177           1 :   _lua_atpanic(i1, 143) | 0;
   40178           1 :  }
   40179           1 :  STACKTOP = i2;
   40180           1 :  return i1 | 0;
   40181           1 : }
   40182           5 : function _luaL_buffinit(i2, i1) {
   40183           5 :  i2 = i2 | 0;
   40184           5 :  i1 = i1 | 0;
   40185           5 :  HEAP32[i1 + 12 >> 2] = i2;
   40186           5 :  HEAP32[i1 >> 2] = i1 + 16;
   40187           5 :  HEAP32[i1 + 8 >> 2] = 0;
   40188           5 :  HEAP32[i1 + 4 >> 2] = 1024;
   40189           5 :  return;
   40190           5 : }
   40191           1 : function _strrchr(i1, i2) {
   40192           0 :  i1 = i1 | 0;
   40193           0 :  i2 = i2 | 0;
   40194           0 :  var i3 = 0;
   40195           0 :  i3 = STACKTOP;
   40196           0 :  i2 = ___memrchr(i1, i2, (_strlen(i1 | 0) | 0) + 1 | 0) | 0;
   40197           0 :  STACKTOP = i3;
   40198           0 :  return i2 | 0;
   40199           1 : }
   40200          21 : function _luaK_fixline(i1, i2) {
   40201          21 :  i1 = i1 | 0;
   40202          21 :  i2 = i2 | 0;
   40203          21 :  HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] | 0) + ((HEAP32[i1 + 20 >> 2] | 0) + -1 << 2) >> 2] = i2;
   40204          21 :  return;
   40205          21 : }
   40206           4 : function _luaX_lookahead(i1) {
   40207           4 :  i1 = i1 | 0;
   40208           4 :  var i2 = 0, i3 = 0;
   40209           4 :  i3 = STACKTOP;
   40210           4 :  i2 = _llex(i1, i1 + 40 | 0) | 0;
   40211           4 :  HEAP32[i1 + 32 >> 2] = i2;
   40212           4 :  STACKTOP = i3;
   40213           4 :  return i2 | 0;
   40214           4 : }
   40215           2 : function _f_call(i2, i1) {
   40216           2 :  i2 = i2 | 0;
   40217           2 :  i1 = i1 | 0;
   40218           2 :  var i3 = 0;
   40219           2 :  i3 = STACKTOP;
   40220           2 :  _luaD_call(i2, HEAP32[i1 >> 2] | 0, HEAP32[i1 + 4 >> 2] | 0, 0);
   40221           2 :  STACKTOP = i3;
   40222           2 :  return;
   40223           2 : }
   40224           1 : function _io_pclose(i1) {
   40225           0 :  i1 = i1 | 0;
   40226           0 :  var i2 = 0;
   40227           0 :  i2 = STACKTOP;
   40228           0 :  _luaL_checkudata(i1, 1, 2832) | 0;
   40229           0 :  i1 = _luaL_execresult(i1, -1) | 0;
   40230           0 :  STACKTOP = i2;
   40231           0 :  return i1 | 0;
   40232           1 : }
   40233         279 : function _luaS_new(i2, i1) {
   40234         279 :  i2 = i2 | 0;
   40235         279 :  i1 = i1 | 0;
   40236         279 :  var i3 = 0;
   40237         279 :  i3 = STACKTOP;
   40238         279 :  i2 = _luaS_newlstr(i2, i1, _strlen(i1 | 0) | 0) | 0;
   40239         279 :  STACKTOP = i3;
   40240         279 :  return i2 | 0;
   40241         279 : }
   40242           1 : function _os_getenv(i1) {
   40243           0 :  i1 = i1 | 0;
   40244           0 :  var i2 = 0;
   40245           0 :  i2 = STACKTOP;
   40246           0 :  _lua_pushstring(i1, _getenv(_luaL_checklstring(i1, 1, 0) | 0) | 0) | 0;
   40247           0 :  STACKTOP = i2;
   40248           0 :  return 1;
   40249           1 : }
   40250           1 : function _math_rad(i1) {
   40251           0 :  i1 = i1 | 0;
   40252           0 :  var i2 = 0;
   40253           0 :  i2 = STACKTOP;
   40254           0 :  _lua_pushnumber(i1, +_luaL_checknumber(i1, 1) * .017453292519943295);
   40255           0 :  STACKTOP = i2;
   40256           0 :  return 1;
   40257           1 : }
   40258           1 : function _math_deg(i1) {
   40259           0 :  i1 = i1 | 0;
   40260           0 :  var i2 = 0;
   40261           0 :  i2 = STACKTOP;
   40262           0 :  _lua_pushnumber(i1, +_luaL_checknumber(i1, 1) / .017453292519943295);
   40263           0 :  STACKTOP = i2;
   40264           0 :  return 1;
   40265           1 : }
   40266           1 : function _writer(i4, i2, i1, i3) {
   40267           0 :  i4 = i4 | 0;
   40268           0 :  i2 = i2 | 0;
   40269           0 :  i1 = i1 | 0;
   40270           0 :  i3 = i3 | 0;
   40271           0 :  i4 = STACKTOP;
   40272           0 :  _luaL_addlstring(i3, i2, i1);
   40273           0 :  STACKTOP = i4;
   40274           0 :  return 0;
   40275           1 : }
   40276           1 : function _luaL_addstring(i2, i1) {
   40277           0 :  i2 = i2 | 0;
   40278           0 :  i1 = i1 | 0;
   40279           0 :  var i3 = 0;
   40280           0 :  i3 = STACKTOP;
   40281           0 :  _luaL_addlstring(i2, i1, _strlen(i1 | 0) | 0);
   40282           0 :  STACKTOP = i3;
   40283           0 :  return;
   40284           1 : }
   40285           1 : function _pcallcont(i1) {
   40286           0 :  i1 = i1 | 0;
   40287           0 :  var i2 = 0;
   40288           0 :  i2 = STACKTOP;
   40289           0 :  i1 = _finishpcall(i1, (_lua_getctx(i1, 0) | 0) == 1 | 0) | 0;
   40290           0 :  STACKTOP = i2;
   40291           0 :  return i1 | 0;
   40292           1 : }
   40293           1 : function _luaopen_coroutine(i1) {
   40294           1 :  i1 = i1 | 0;
   40295           1 :  var i2 = 0;
   40296           1 :  i2 = STACKTOP;
   40297           1 :  _lua_createtable(i1, 0, 6);
   40298           1 :  _luaL_setfuncs(i1, 10656, 0);
   40299           1 :  STACKTOP = i2;
   40300           1 :  return 1;
   40301           1 : }
   40302          27 : function _lua_version(i1) {
   40303          27 :  i1 = i1 | 0;
   40304          27 :  if ((i1 | 0) == 0) {
   40305          27 :   i1 = 920;
   40306          27 :  } else {
   40307          27 :   i1 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 176 >> 2] | 0;
   40308          27 :  }
   40309          27 :  return i1 | 0;
   40310          27 : }
   40311           3 : function _lua_pushnil(i1) {
   40312           3 :  i1 = i1 | 0;
   40313           3 :  var i2 = 0;
   40314           3 :  i1 = i1 + 8 | 0;
   40315           3 :  i2 = HEAP32[i1 >> 2] | 0;
   40316           3 :  HEAP32[i2 + 8 >> 2] = 0;
   40317           3 :  HEAP32[i1 >> 2] = i2 + 16;
   40318           3 :  return;
   40319           3 : }
   40320           1 : function _math_floor(i1) {
   40321           0 :  i1 = i1 | 0;
   40322           0 :  var i2 = 0;
   40323           0 :  i2 = STACKTOP;
   40324           0 :  _lua_pushnumber(i1, +Math_floor(+(+_luaL_checknumber(i1, 1))));
   40325           0 :  STACKTOP = i2;
   40326           0 :  return 1;
   40327           1 : }
   40328           1 : function _laction(i1) {
   40329           0 :  i1 = i1 | 0;
   40330           0 :  var i2 = 0;
   40331           0 :  i2 = STACKTOP;
   40332           0 :  _signal(i1 | 0, 0) | 0;
   40333           0 :  _lua_sethook(HEAP32[48] | 0, 1, 11, 1) | 0;
   40334           0 :  STACKTOP = i2;
   40335           0 :  return;
   40336           1 : }
   40337           1 : function dynCall_iiii(i4, i3, i2, i1) {
   40338           0 :  i4 = i4 | 0;
   40339           0 :  i3 = i3 | 0;
   40340           0 :  i2 = i2 | 0;
   40341           0 :  i1 = i1 | 0;
   40342           0 :  return FUNCTION_TABLE_iiii[i4 & 3](i3 | 0, i2 | 0, i1 | 0) | 0;
   40343           1 : }
   40344           1 : function _luaopen_debug(i1) {
   40345           1 :  i1 = i1 | 0;
   40346           1 :  var i2 = 0;
   40347           1 :  i2 = STACKTOP;
   40348           1 :  _lua_createtable(i1, 0, 16);
   40349           1 :  _luaL_setfuncs(i1, 11176, 0);
   40350           1 :  STACKTOP = i2;
   40351           1 :  return 1;
   40352           1 : }
   40353           1 : function _luaopen_bit32(i1) {
   40354           1 :  i1 = i1 | 0;
   40355           1 :  var i2 = 0;
   40356           1 :  i2 = STACKTOP;
   40357           1 :  _lua_createtable(i1, 0, 12);
   40358           1 :  _luaL_setfuncs(i1, 10240, 0);
   40359           1 :  STACKTOP = i2;
   40360           1 :  return 1;
   40361           1 : }
   40362           1 : function _math_sqrt(i1) {
   40363           0 :  i1 = i1 | 0;
   40364           0 :  var i2 = 0;
   40365           0 :  i2 = STACKTOP;
   40366           0 :  _lua_pushnumber(i1, +Math_sqrt(+(+_luaL_checknumber(i1, 1))));
   40367           0 :  STACKTOP = i2;
   40368           0 :  return 1;
   40369           1 : }
   40370           1 : function _math_ceil(i1) {
   40371           0 :  i1 = i1 | 0;
   40372           0 :  var i2 = 0;
   40373           0 :  i2 = STACKTOP;
   40374           0 :  _lua_pushnumber(i1, +Math_ceil(+(+_luaL_checknumber(i1, 1))));
   40375           0 :  STACKTOP = i2;
   40376           0 :  return 1;
   40377           1 : }
   40378           1 : function _math_atan(i1) {
   40379           0 :  i1 = i1 | 0;
   40380           0 :  var i2 = 0;
   40381           0 :  i2 = STACKTOP;
   40382           0 :  _lua_pushnumber(i1, +Math_atan(+(+_luaL_checknumber(i1, 1))));
   40383           0 :  STACKTOP = i2;
   40384           0 :  return 1;
   40385           1 : }
   40386           1 : function _math_asin(i1) {
   40387           0 :  i1 = i1 | 0;
   40388           0 :  var i2 = 0;
   40389           0 :  i2 = STACKTOP;
   40390           0 :  _lua_pushnumber(i1, +Math_asin(+(+_luaL_checknumber(i1, 1))));
   40391           0 :  STACKTOP = i2;
   40392           0 :  return 1;
   40393           1 : }
   40394           1 : function _math_acos(i1) {
   40395           0 :  i1 = i1 | 0;
   40396           0 :  var i2 = 0;
   40397           0 :  i2 = STACKTOP;
   40398           0 :  _lua_pushnumber(i1, +Math_acos(+(+_luaL_checknumber(i1, 1))));
   40399           0 :  STACKTOP = i2;
   40400           0 :  return 1;
   40401           1 : }
   40402           1 : function _lua_close(i1) {
   40403           1 :  i1 = i1 | 0;
   40404           1 :  var i2 = 0;
   40405           1 :  i2 = STACKTOP;
   40406           1 :  _close_state(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 172 >> 2] | 0);
   40407           1 :  STACKTOP = i2;
   40408           1 :  return;
   40409           1 : }
   40410           4 : function _dothecall(i1, i2) {
   40411           4 :  i1 = i1 | 0;
   40412           4 :  i2 = i2 | 0;
   40413           4 :  i2 = STACKTOP;
   40414           4 :  _luaD_call(i1, (HEAP32[i1 + 8 >> 2] | 0) + -32 | 0, 0, 0);
   40415           4 :  STACKTOP = i2;
   40416           4 :  return;
   40417           4 : }
   40418           1 : function _math_tan(i1) {
   40419           0 :  i1 = i1 | 0;
   40420           0 :  var i2 = 0;
   40421           0 :  i2 = STACKTOP;
   40422           0 :  _lua_pushnumber(i1, +Math_tan(+(+_luaL_checknumber(i1, 1))));
   40423           0 :  STACKTOP = i2;
   40424           0 :  return 1;
   40425           1 : }
   40426           1 : function _math_sin(i1) {
   40427           0 :  i1 = i1 | 0;
   40428           0 :  var i2 = 0;
   40429           0 :  i2 = STACKTOP;
   40430           0 :  _lua_pushnumber(i1, +Math_sin(+(+_luaL_checknumber(i1, 1))));
   40431           0 :  STACKTOP = i2;
   40432           0 :  return 1;
   40433           1 : }
   40434           1 : function _math_log10(i1) {
   40435           0 :  i1 = i1 | 0;
   40436           0 :  var i2 = 0;
   40437           0 :  i2 = STACKTOP;
   40438           0 :  _lua_pushnumber(i1, +_log10(+(+_luaL_checknumber(i1, 1))));
   40439           0 :  STACKTOP = i2;
   40440           0 :  return 1;
   40441           1 : }
   40442           1 : function _math_exp(i1) {
   40443           0 :  i1 = i1 | 0;
   40444           0 :  var i2 = 0;
   40445           0 :  i2 = STACKTOP;
   40446           0 :  _lua_pushnumber(i1, +Math_exp(+(+_luaL_checknumber(i1, 1))));
   40447           0 :  STACKTOP = i2;
   40448           0 :  return 1;
   40449           1 : }
   40450           1 : function _math_cos(i1) {
   40451           0 :  i1 = i1 | 0;
   40452           0 :  var i2 = 0;
   40453           0 :  i2 = STACKTOP;
   40454           0 :  _lua_pushnumber(i1, +Math_cos(+(+_luaL_checknumber(i1, 1))));
   40455           0 :  STACKTOP = i2;
   40456           0 :  return 1;
   40457           1 : }
   40458           1 : function _math_abs(i1) {
   40459           0 :  i1 = i1 | 0;
   40460           0 :  var i2 = 0;
   40461           0 :  i2 = STACKTOP;
   40462           0 :  _lua_pushnumber(i1, +Math_abs(+(+_luaL_checknumber(i1, 1))));
   40463           0 :  STACKTOP = i2;
   40464           0 :  return 1;
   40465           1 : }
   40466           1 : function _math_randomseed(i1) {
   40467           0 :  i1 = i1 | 0;
   40468           0 :  var i2 = 0;
   40469           0 :  i2 = STACKTOP;
   40470           0 :  _srand(_luaL_checkunsigned(i1, 1) | 0);
   40471           0 :  _rand() | 0;
   40472           0 :  STACKTOP = i2;
   40473           0 :  return 0;
   40474           1 : }
   40475           1 : function _luaopen_os(i1) {
   40476           1 :  i1 = i1 | 0;
   40477           1 :  var i2 = 0;
   40478           1 :  i2 = STACKTOP;
   40479           1 :  _lua_createtable(i1, 0, 11);
   40480           1 :  _luaL_setfuncs(i1, 5624, 0);
   40481           1 :  STACKTOP = i2;
   40482           1 :  return 1;
   40483           1 : }
   40484           1 : function _math_tanh(i1) {
   40485           0 :  i1 = i1 | 0;
   40486           0 :  var i2 = 0;
   40487           0 :  i2 = STACKTOP;
   40488           0 :  _lua_pushnumber(i1, +_tanh(+(+_luaL_checknumber(i1, 1))));
   40489           0 :  STACKTOP = i2;
   40490           0 :  return 1;
   40491           1 : }
   40492           1 : function _math_sinh(i1) {
   40493           0 :  i1 = i1 | 0;
   40494           0 :  var i2 = 0;
   40495           0 :  i2 = STACKTOP;
   40496           0 :  _lua_pushnumber(i1, +_sinh(+(+_luaL_checknumber(i1, 1))));
   40497           0 :  STACKTOP = i2;
   40498           0 :  return 1;
   40499           1 : }
   40500           1 : function _math_cosh(i1) {
   40501           0 :  i1 = i1 | 0;
   40502           0 :  var i2 = 0;
   40503           0 :  i2 = STACKTOP;
   40504           0 :  _lua_pushnumber(i1, +_cosh(+(+_luaL_checknumber(i1, 1))));
   40505           0 :  STACKTOP = i2;
   40506           0 :  return 1;
   40507           1 : }
   40508           1 : function _luaB_yield(i1) {
   40509           0 :  i1 = i1 | 0;
   40510           0 :  var i2 = 0;
   40511           0 :  i2 = STACKTOP;
   40512           0 :  i1 = _lua_yieldk(i1, _lua_gettop(i1) | 0, 0, 0) | 0;
   40513           0 :  STACKTOP = i2;
   40514           0 :  return i1 | 0;
   40515           1 : }
   40516           1 : function _luaB_tostring(i1) {
   40517           0 :  i1 = i1 | 0;
   40518           0 :  var i2 = 0;
   40519           0 :  i2 = STACKTOP;
   40520           0 :  _luaL_checkany(i1, 1);
   40521           0 :  _luaL_tolstring(i1, 1, 0) | 0;
   40522           0 :  STACKTOP = i2;
   40523           0 :  return 1;
   40524           1 : }
   40525           1 : function _growstack(i2, i1) {
   40526           0 :  i2 = i2 | 0;
   40527           0 :  i1 = i1 | 0;
   40528           0 :  var i3 = 0;
   40529           0 :  i3 = STACKTOP;
   40530           0 :  _luaD_growstack(i2, HEAP32[i1 >> 2] | 0);
   40531           0 :  STACKTOP = i3;
   40532           0 :  return;
   40533           1 : }
   40534          24 : function ___udivdi3(i4, i3, i2, i1) {
   40535          24 :  i4 = i4 | 0;
   40536          24 :  i3 = i3 | 0;
   40537          24 :  i2 = i2 | 0;
   40538          24 :  i1 = i1 | 0;
   40539          24 :  i4 = ___udivmoddi4(i4, i3, i2, i1, 0) | 0;
   40540          24 :  return i4 | 0;
   40541          24 : }
   40542           1 : function _b_not(i1) {
   40543           0 :  i1 = i1 | 0;
   40544           0 :  var i2 = 0;
   40545           0 :  i2 = STACKTOP;
   40546           0 :  _lua_pushunsigned(i1, ~(_luaL_checkunsigned(i1, 1) | 0));
   40547           0 :  STACKTOP = i2;
   40548           0 :  return 1;
   40549           1 : }
   40550      285988 : function _luaO_fb2int(i1) {
   40551      285988 :  i1 = i1 | 0;
   40552      285988 :  var i2 = 0;
   40553      285988 :  i2 = i1 >>> 3 & 31;
   40554      285988 :  if ((i2 | 0) != 0) {
   40555      285988 :   i1 = (i1 & 7 | 8) << i2 + -1;
   40556      285988 :  }
   40557      285988 :  return i1 | 0;
   40558      285988 : }
   40559           1 : function _luaB_corunning(i1) {
   40560           0 :  i1 = i1 | 0;
   40561           0 :  var i2 = 0;
   40562           0 :  i2 = STACKTOP;
   40563           0 :  _lua_pushboolean(i1, _lua_pushthread(i1) | 0);
   40564           0 :  STACKTOP = i2;
   40565           0 :  return 2;
   40566           1 : }
   40567           1 : function stackAlloc(i1) {
   40568           1 :  i1 = i1 | 0;
   40569           1 :  var i2 = 0;
   40570           1 :  i2 = STACKTOP;
   40571           1 :  STACKTOP = STACKTOP + i1 | 0;
   40572           1 :  STACKTOP = STACKTOP + 7 & -8;
   40573           1 :  return i2 | 0;
   40574           1 : }
   40575           1 : function _strcoll(i2, i1) {
   40576           0 :  i2 = i2 | 0;
   40577           0 :  i1 = i1 | 0;
   40578           0 :  var i3 = 0;
   40579           0 :  i3 = STACKTOP;
   40580           0 :  i2 = _strcmp(i2, i1) | 0;
   40581           0 :  STACKTOP = i3;
   40582           0 :  return i2 | 0;
   40583           1 : }
   40584           1 : function _os_clock(i1) {
   40585           0 :  i1 = i1 | 0;
   40586           0 :  var i2 = 0;
   40587           0 :  i2 = STACKTOP;
   40588           0 :  _lua_pushnumber(i1, +(_clock() | 0) / 1.0e6);
   40589           0 :  STACKTOP = i2;
   40590           0 :  return 1;
   40591           1 : }
   40592           1 : function _dofilecont(i1) {
   40593           0 :  i1 = i1 | 0;
   40594           0 :  var i2 = 0;
   40595           0 :  i2 = STACKTOP;
   40596           0 :  i1 = (_lua_gettop(i1) | 0) + -1 | 0;
   40597           0 :  STACKTOP = i2;
   40598           0 :  return i1 | 0;
   40599           1 : }
   40600           5 : function _scalbnl(d2, i1) {
   40601           5 :  d2 = +d2;
   40602           5 :  i1 = i1 | 0;
   40603           5 :  var i3 = 0;
   40604           5 :  i3 = STACKTOP;
   40605           5 :  d2 = +_scalbn(d2, i1);
   40606           5 :  STACKTOP = i3;
   40607           5 :  return +d2;
   40608           5 : }
   40609           1 : function _tolower(i1) {
   40610           0 :  i1 = i1 | 0;
   40611           0 :  if ((i1 | 0) < 65) return i1 | 0;
   40612           0 :  if ((i1 | 0) > 90) return i1 | 0;
   40613           0 :  return i1 - 65 + 97 | 0;
   40614           1 : }
   40615          12 : function _lua_gettop(i1) {
   40616          12 :  i1 = i1 | 0;
   40617          12 :  return (HEAP32[i1 + 8 >> 2] | 0) - ((HEAP32[HEAP32[i1 + 16 >> 2] >> 2] | 0) + 16) >> 4 | 0;
   40618          12 : }
   40619           1 : function dynCall_iii(i3, i2, i1) {
   40620           0 :  i3 = i3 | 0;
   40621           0 :  i2 = i2 | 0;
   40622           0 :  i1 = i1 | 0;
   40623           0 :  return FUNCTION_TABLE_iii[i3 & 1](i2 | 0, i1 | 0) | 0;
   40624           1 : }
   40625           1 : function _str_match(i1) {
   40626           0 :  i1 = i1 | 0;
   40627           0 :  var i2 = 0;
   40628           0 :  i2 = STACKTOP;
   40629           0 :  i1 = _str_find_aux(i1, 0) | 0;
   40630           0 :  STACKTOP = i2;
   40631           0 :  return i1 | 0;
   40632           1 : }
   40633           1 : function _luaM_toobig(i1) {
   40634           0 :  i1 = i1 | 0;
   40635           0 :  var i2 = 0;
   40636           0 :  i2 = STACKTOP;
   40637           0 :  STACKTOP = STACKTOP + 16 | 0;
   40638           0 :  _luaG_runerror(i1, 4144, i2);
   40639           1 : }
   40640           1 : function _luaK_getlabel(i1) {
   40641           0 :  i1 = i1 | 0;
   40642           0 :  var i2 = 0;
   40643           0 :  i2 = HEAP32[i1 + 20 >> 2] | 0;
   40644           0 :  HEAP32[i1 + 24 >> 2] = i2;
   40645           0 :  return i2 | 0;
   40646           1 : }
   40647           1 : function _ldexp(d2, i1) {
   40648           0 :  d2 = +d2;
   40649           0 :  i1 = i1 | 0;
   40650           0 :  var i3 = 0;
   40651           0 :  i3 = STACKTOP;
   40652           0 :  d2 = +_scalbn(d2, i1);
   40653           0 :  STACKTOP = i3;
   40654           0 :  return +d2;
   40655           1 : }
   40656           1 : function _str_find(i1) {
   40657           0 :  i1 = i1 | 0;
   40658           0 :  var i2 = 0;
   40659           0 :  i2 = STACKTOP;
   40660           0 :  i1 = _str_find_aux(i1, 1) | 0;
   40661           0 :  STACKTOP = i2;
   40662           0 :  return i1 | 0;
   40663           1 : }
   40664           1 : function _db_getregistry(i1) {
   40665           0 :  i1 = i1 | 0;
   40666           0 :  var i2 = 0;
   40667           0 :  i2 = STACKTOP;
   40668           0 :  _lua_pushvalue(i1, -1001e3);
   40669           0 :  STACKTOP = i2;
   40670           0 :  return 1;
   40671           1 : }
   40672           1 : function _luaB_ipairs(i1) {
   40673           0 :  i1 = i1 | 0;
   40674           0 :  var i2 = 0;
   40675           0 :  i2 = STACKTOP;
   40676           0 :  _pairsmeta(i1, 9960, 1, 165);
   40677           0 :  STACKTOP = i2;
   40678           0 :  return 3;
   40679           1 : }
   40680         294 : function _strlen(i1) {
   40681         294 :  i1 = i1 | 0;
   40682         294 :  var i2 = 0;
   40683         294 :  i2 = i1;
   40684         294 :  while (HEAP8[i2] | 0) {
   40685         294 :   i2 = i2 + 1 | 0;
   40686         294 :  }
   40687         294 :  return i2 - i1 | 0;
   40688         294 : }
   40689           1 : function _luaB_pairs(i1) {
   40690           0 :  i1 = i1 | 0;
   40691           0 :  var i2 = 0;
   40692           0 :  i2 = STACKTOP;
   40693           0 :  _pairsmeta(i1, 9864, 0, 93);
   40694           0 :  STACKTOP = i2;
   40695           0 :  return 3;
   40696           1 : }
   40697           1 : function setThrew(i1, i2) {
   40698           0 :  i1 = i1 | 0;
   40699           0 :  i2 = i2 | 0;
   40700           0 :  if ((__THREW__ | 0) == 0) {
   40701           0 :   __THREW__ = i1;
   40702           0 :   threwValue = i2;
   40703           0 :  }
   40704           1 : }
   40705           1 : function _io_output(i1) {
   40706           0 :  i1 = i1 | 0;
   40707           0 :  var i2 = 0;
   40708           0 :  i2 = STACKTOP;
   40709           0 :  _g_iofile(i1, 2800, 3512);
   40710           0 :  STACKTOP = i2;
   40711           0 :  return 1;
   40712           1 : }
   40713           8 : function dynCall_vii(i3, i2, i1) {
   40714           8 :  i3 = i3 | 0;
   40715           8 :  i2 = i2 | 0;
   40716           8 :  i1 = i1 | 0;
   40717           8 :  FUNCTION_TABLE_vii[i3 & 15](i2 | 0, i1 | 0);
   40718           8 : }
   40719           1 : function _io_input(i1) {
   40720           0 :  i1 = i1 | 0;
   40721           0 :  var i2 = 0;
   40722           0 :  i2 = STACKTOP;
   40723           0 :  _g_iofile(i1, 2776, 3480);
   40724           0 :  STACKTOP = i2;
   40725           0 :  return 1;
   40726           1 : }
   40727           1 : function _semerror(i2, i1) {
   40728           0 :  i2 = i2 | 0;
   40729           0 :  i1 = i1 | 0;
   40730           0 :  HEAP32[i2 + 16 >> 2] = 0;
   40731           0 :  _luaX_syntaxerror(i2, i1);
   40732           1 : }
   40733           1 : function _luaX_syntaxerror(i1, i2) {
   40734           0 :  i1 = i1 | 0;
   40735           0 :  i2 = i2 | 0;
   40736           0 :  _lexerror(i1, i2, HEAP32[i1 + 16 >> 2] | 0);
   40737           1 : }
   40738           1 : function b4(i1, i2, i3, i4) {
   40739           0 :  i1 = i1 | 0;
   40740           0 :  i2 = i2 | 0;
   40741           0 :  i3 = i3 | 0;
   40742           0 :  i4 = i4 | 0;
   40743           0 :  abort(4);
   40744           0 :  return 0;
   40745           1 : }
   40746           1 : function _lua_typename(i2, i1) {
   40747           0 :  i2 = i2 | 0;
   40748           0 :  i1 = i1 | 0;
   40749           0 :  return HEAP32[8528 + (i1 + 1 << 2) >> 2] | 0;
   40750           1 : }
   40751           1 : function dynCall_ii(i2, i1) {
   40752           0 :  i2 = i2 | 0;
   40753           0 :  i1 = i1 | 0;
   40754           0 :  return FUNCTION_TABLE_ii[i2 & 255](i1 | 0) | 0;
   40755           1 : }
   40756           1 : function dynCall_vi(i2, i1) {
   40757           0 :  i2 = i2 | 0;
   40758           0 :  i1 = i1 | 0;
   40759           0 :  FUNCTION_TABLE_vi[i2 & 1](i1 | 0);
   40760           1 : }
   40761           1 : function b0(i1, i2, i3) {
   40762           0 :  i1 = i1 | 0;
   40763           0 :  i2 = i2 | 0;
   40764           0 :  i3 = i3 | 0;
   40765           0 :  abort(0);
   40766           0 :  return 0;
   40767           1 : }
   40768           1 : function _lua_gethookmask(i1) {
   40769           0 :  i1 = i1 | 0;
   40770           0 :  return HEAPU8[i1 + 40 | 0] | 0 | 0;
   40771           1 : }
   40772           1 : function _lua_gethookcount(i1) {
   40773           0 :  i1 = i1 | 0;
   40774           0 :  return HEAP32[i1 + 44 >> 2] | 0;
   40775           1 : }
   40776           1 : function _lua_status(i1) {
   40777           0 :  i1 = i1 | 0;
   40778           0 :  return HEAPU8[i1 + 6 | 0] | 0 | 0;
   40779           1 : }
   40780           1 : function _lua_gethook(i1) {
   40781           0 :  i1 = i1 | 0;
   40782           0 :  return HEAP32[i1 + 52 >> 2] | 0;
   40783           1 : }
   40784           1 : function b5(i1, i2) {
   40785           0 :  i1 = i1 | 0;
   40786           0 :  i2 = i2 | 0;
   40787           0 :  abort(5);
   40788           0 :  return 0;
   40789           1 : }
   40790           1 : function _lua_error(i1) {
   40791           0 :  i1 = i1 | 0;
   40792           0 :  _luaG_errormsg(i1);
   40793           0 :  return 0;
   40794           1 : }
   40795           1 : function b2(i1, i2) {
   40796           0 :  i1 = i1 | 0;
   40797           0 :  i2 = i2 | 0;
   40798           0 :  abort(2);
   40799           1 : }
   40800           1 : function stackRestore(i1) {
   40801           0 :  i1 = i1 | 0;
   40802           0 :  STACKTOP = i1;
   40803           1 : }
   40804           1 : function setTempRet9(i1) {
   40805           0 :  i1 = i1 | 0;
   40806           0 :  tempRet9 = i1;
   40807           1 : }
   40808           1 : function setTempRet8(i1) {
   40809           0 :  i1 = i1 | 0;
   40810           0 :  tempRet8 = i1;
   40811           1 : }
   40812           1 : function setTempRet7(i1) {
   40813           0 :  i1 = i1 | 0;
   40814           0 :  tempRet7 = i1;
   40815           1 : }
   40816           1 : function setTempRet6(i1) {
   40817           0 :  i1 = i1 | 0;
   40818           0 :  tempRet6 = i1;
   40819           1 : }
   40820           1 : function setTempRet5(i1) {
   40821           0 :  i1 = i1 | 0;
   40822           0 :  tempRet5 = i1;
   40823           1 : }
   40824           1 : function setTempRet4(i1) {
   40825           0 :  i1 = i1 | 0;
   40826           0 :  tempRet4 = i1;
   40827           1 : }
   40828           1 : function setTempRet3(i1) {
   40829           0 :  i1 = i1 | 0;
   40830           0 :  tempRet3 = i1;
   40831           1 : }
   40832           1 : function setTempRet2(i1) {
   40833           0 :  i1 = i1 | 0;
   40834           0 :  tempRet2 = i1;
   40835           1 : }
   40836           1 : function setTempRet1(i1) {
   40837           0 :  i1 = i1 | 0;
   40838           0 :  tempRet1 = i1;
   40839           1 : }
   40840           1 : function setTempRet0(i1) {
   40841           0 :  i1 = i1 | 0;
   40842           0 :  tempRet0 = i1;
   40843           1 : }
   40844           1 : function b3(i1) {
   40845           0 :  i1 = i1 | 0;
   40846           0 :  abort(3);
   40847           0 :  return 0;
   40848           1 : }
   40849           1 : function _rand() {
   40850           0 :  return _rand_r(___rand_seed) | 0;
   40851           1 : }
   40852           1 : function stackSave() {
   40853           0 :  return STACKTOP | 0;
   40854           1 : }
   40855           1 : function b1(i1) {
   40856           0 :  i1 = i1 | 0;
   40857           0 :  abort(1);
   40858           1 : }
   40859           1 : 
   40860           1 : // EMSCRIPTEN_END_FUNCS
   40861           1 :   var FUNCTION_TABLE_iiii = [b0,_getF,_getS,_generic_reader];
   40862           1 :   var FUNCTION_TABLE_vi = [b1,_laction];
   40863           1 :   var FUNCTION_TABLE_vii = [b2,_lstop,_growstack,_f_call,_resume,_unroll,_f_parser,_dothecall,_f_luaopen,_hookf,b2,b2,b2,b2,b2,b2];
   40864           1 :   var FUNCTION_TABLE_ii = [b3,_io_close,_io_flush,_io_input,_io_lines,_io_open,_io_output,_io_popen,_io_read,_io_tmpfile,_io_type,_io_write,_f_flush,_f_lines,_f_read,_f_seek,_f_setvbuf,_f_write,_f_gc,_f_tostring,_math_abs,_math_acos,_math_asin,_math_atan2,_math_atan,_math_ceil,_math_cosh,_math_cos,_math_deg
   40865           1 :   ,_math_exp,_math_floor,_math_fmod,_math_frexp,_math_ldexp,_math_log10,_math_log,_math_max,_math_min,_math_modf,_math_pow,_math_rad,_math_random,_math_randomseed,_math_sinh,_math_sin,_math_sqrt,_math_tanh,_math_tan,_ll_loadlib,_ll_searchpath,_ll_seeall,_ll_module,_ll_require,_os_clock,_os_date,_os_difftime,_os_execute,_os_exit,_os_getenv
   40866           1 :   ,_os_remove,_os_rename,_os_setlocale,_os_time,_os_tmpname,_str_byte,_str_char,_str_dump,_str_find,_str_format,_gmatch,_str_gsub,_str_len,_str_lower,_str_match,_str_rep,_str_reverse,_str_sub,_str_upper,_tconcat,_maxn,_tinsert,_pack,_unpack,_tremove,_sort,_luaB_assert,_luaB_collectgarbage,_luaB_dofile,_luaB_error
   40867           1 :   ,_luaB_getmetatable,_luaB_ipairs,_luaB_loadfile,_luaB_load,_luaB_next,_luaB_pairs,_luaB_pcall,_luaB_print,_luaB_rawequal,_luaB_rawlen,_luaB_rawget,_luaB_rawset,_luaB_select,_luaB_setmetatable,_luaB_tonumber,_luaB_tostring,_luaB_type,_luaB_xpcall,_b_arshift,_b_and,_b_not,_b_or,_b_xor,_b_test,_b_extract,_b_lrot,_b_lshift,_b_replace,_b_rrot,_b_rshift
   40868           1 :   ,_luaB_cocreate,_luaB_coresume,_luaB_corunning,_luaB_costatus,_luaB_cowrap,_luaB_yield,_db_debug,_db_getuservalue,_db_gethook,_db_getinfo,_db_getlocal,_db_getregistry,_db_getmetatable,_db_getupvalue,_db_upvaluejoin,_db_upvalueid,_db_setuservalue,_db_sethook,_db_setlocal,_db_setmetatable,_db_setupvalue,_db_traceback,_pmain,_traceback,_panic,_luaopen_base,_luaopen_package,_luaopen_coroutine,_luaopen_table,_luaopen_io
   40869           1 :   ,_luaopen_os,_luaopen_string,_luaopen_bit32,_luaopen_math,_luaopen_debug,_io_noclose,_io_readline,_io_fclose,_io_pclose,_gctm,_searcher_preload,_searcher_Lua,_searcher_C,_searcher_Croot,_gmatch_aux,_dofilecont,_ipairsaux,_pcallcont,_luaB_auxwrap,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
   40870           1 :   ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
   40871           1 :   ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
   40872           1 :   ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3];
   40873           1 :   var FUNCTION_TABLE_iiiii = [b4,_l_alloc,_writer,b4];
   40874           1 :   var FUNCTION_TABLE_iii = [b5,_lua_newstate];
   40875           1 : 
   40876           1 :   return { _testSetjmp: _testSetjmp, _i64Subtract: _i64Subtract, _free: _free, _main: _main, _rand_r: _rand_r, _realloc: _realloc, _i64Add: _i64Add, _tolower: _tolower, _saveSetjmp: _saveSetjmp, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _strlen: _strlen, _rand: _rand, _bitshift64Shl: _bitshift64Shl, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, setThrew: setThrew, setTempRet0: setTempRet0, setTempRet1: setTempRet1, setTempRet2: setTempRet2, setTempRet3: setTempRet3, setTempRet4: setTempRet4, setTempRet5: setTempRet5, setTempRet6: setTempRet6, setTempRet7: setTempRet7, setTempRet8: setTempRet8, setTempRet9: setTempRet9, dynCall_iiii: dynCall_iiii, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_iiiii: dynCall_iiiii, dynCall_iii: dynCall_iii };
   40877           1 : })
   40878           1 : // EMSCRIPTEN_END_ASM
   40879           1 : ({ "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array }, { "abort": abort, "assert": assert, "asmPrintInt": asmPrintInt, "asmPrintFloat": asmPrintFloat, "min": Math_min, "invoke_iiii": invoke_iiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_iiiii": invoke_iiiii, "invoke_iii": invoke_iii, "_isalnum": _isalnum, "_fabs": _fabs, "_frexp": _frexp, "_exp": _exp, "_fread": _fread, "__reallyNegative": __reallyNegative, "_longjmp": _longjmp, "__addDays": __addDays, "_fsync": _fsync, "_signal": _signal, "_rename": _rename, "_sbrk": _sbrk, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_sinh": _sinh, "_sysconf": _sysconf, "_close": _close, "_ferror": _ferror, "_clock": _clock, "_cos": _cos, "_tanh": _tanh, "_unlink": _unlink, "_write": _write, "__isLeapYear": __isLeapYear, "_ftell": _ftell, "_isupper": _isupper, "_gmtime_r": _gmtime_r, "_islower": _islower, "_tmpnam": _tmpnam, "_tmpfile": _tmpfile, "_send": _send, "_abort": _abort, "_setvbuf": _setvbuf, "_atan2": _atan2, "_setlocale": _setlocale, "_isgraph": _isgraph, "_modf": _modf, "_strerror_r": _strerror_r, "_fscanf": _fscanf, "___setErrNo": ___setErrNo, "_isalpha": _isalpha, "_srand": _srand, "_mktime": _mktime, "_putchar": _putchar, "_gmtime": _gmtime, "_localeconv": _localeconv, "_sprintf": _sprintf, "_localtime": _localtime, "_read": _read, "_fwrite": _fwrite, "_time": _time, "_fprintf": _fprintf, "_exit": _exit, "_freopen": _freopen, "_llvm_pow_f64": _llvm_pow_f64, "_fgetc": _fgetc, "_fmod": _fmod, "_lseek": _lseek, "_rmdir": _rmdir, "_asin": _asin, "_floor": _floor, "_pwrite": _pwrite, "_localtime_r": _localtime_r, "_tzset": _tzset, "_open": _open, "_remove": _remove, "_snprintf": _snprintf, "__scanString": __scanString, "_strftime": _strftime, "_fseek": _fseek, "_iscntrl": _iscntrl, "_isxdigit": _isxdigit, "_fclose": _fclose, "_log": _log, "_recv": _recv, "_tan": _tan, "_copysign": _copysign, "__getFloat": __getFloat, "_fputc": _fputc, "_ispunct": _ispunct, "_ceil": _ceil, "_isspace": _isspace, "_fopen": _fopen, "_sin": _sin, "_acos": _acos, "_cosh": _cosh, "___buildEnvironment": ___buildEnvironment, "_difftime": _difftime, "_ungetc": _ungetc, "_system": _system, "_fflush": _fflush, "_log10": _log10, "_fileno": _fileno, "__exit": __exit, "__arraySum": __arraySum, "_fgets": _fgets, "_atan": _atan, "_pread": _pread, "_mkport": _mkport, "_toupper": _toupper, "_feof": _feof, "___errno_location": ___errno_location, "_clearerr": _clearerr, "_getenv": _getenv, "_strerror": _strerror, "_emscripten_longjmp": _emscripten_longjmp, "__formatString": __formatString, "_fputs": _fputs, "_sqrt": _sqrt, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "ctlz_i8": ctlz_i8, "___rand_seed": ___rand_seed, "NaN": NaN, "Infinity": Infinity, "_stderr": _stderr, "_stdin": _stdin, "_stdout": _stdout }, buffer);
   40880           1 : var _testSetjmp = Module["_testSetjmp"] = asm["_testSetjmp"];
   40881           1 : var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
   40882           1 : var _free = Module["_free"] = asm["_free"];
   40883           1 : var _main = Module["_main"] = asm["_main"];
   40884           1 : var _rand_r = Module["_rand_r"] = asm["_rand_r"];
   40885           1 : var _realloc = Module["_realloc"] = asm["_realloc"];
   40886           1 : var _i64Add = Module["_i64Add"] = asm["_i64Add"];
   40887           1 : var _tolower = Module["_tolower"] = asm["_tolower"];
   40888           1 : var _saveSetjmp = Module["_saveSetjmp"] = asm["_saveSetjmp"];
   40889           1 : var _memset = Module["_memset"] = asm["_memset"];
   40890           1 : var _malloc = Module["_malloc"] = asm["_malloc"];
   40891           1 : var _memcpy = Module["_memcpy"] = asm["_memcpy"];
   40892           1 : var _strlen = Module["_strlen"] = asm["_strlen"];
   40893           1 : var _rand = Module["_rand"] = asm["_rand"];
   40894           1 : var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
   40895           1 : var runPostSets = Module["runPostSets"] = asm["runPostSets"];
   40896           1 : var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
   40897           1 : var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
   40898           1 : var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
   40899           1 : var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
   40900           1 : var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"];
   40901           1 : var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
   40902           1 : 
   40903           1 : Runtime.stackAlloc = function(size) { return asm['stackAlloc'](size) };
   40904           1 : Runtime.stackSave = function() { return asm['stackSave']() };
   40905           1 : Runtime.stackRestore = function(top) { asm['stackRestore'](top) };
   40906           1 : 
   40907           1 : 
   40908           1 : // TODO: strip out parts of this we do not need
   40909           1 : 
   40910           1 : //======= begin closure i64 code =======
   40911           1 : 
   40912           1 : // Copyright 2009 The Closure Library Authors. All Rights Reserved.
   40913           1 : //
   40914           1 : // Licensed under the Apache License, Version 2.0 (the "License");
   40915           1 : // you may not use this file except in compliance with the License.
   40916           1 : // You may obtain a copy of the License at
   40917           1 : //
   40918           1 : //      http://www.apache.org/licenses/LICENSE-2.0
   40919           1 : //
   40920           1 : // Unless required by applicable law or agreed to in writing, software
   40921           1 : // distributed under the License is distributed on an "AS-IS" BASIS,
   40922           1 : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   40923           1 : // See the License for the specific language governing permissions and
   40924           1 : // limitations under the License.
   40925           1 : 
   40926           1 : /**
   40927           1 :  * @fileoverview Defines a Long class for representing a 64-bit two's-complement
   40928           1 :  * integer value, which faithfully simulates the behavior of a Java "long". This
   40929           1 :  * implementation is derived from LongLib in GWT.
   40930           1 :  *
   40931           1 :  */
   40932           1 : 
   40933           1 : var i64Math = (function() { // Emscripten wrapper
   40934           1 :   var goog = { math: {} };
   40935           1 : 
   40936           1 : 
   40937           1 :   /**
   40938           1 :    * Constructs a 64-bit two's-complement integer, given its low and high 32-bit
   40939           1 :    * values as *signed* integers.  See the from* functions below for more
   40940           1 :    * convenient ways of constructing Longs.
   40941           1 :    *
   40942           1 :    * The internal representation of a long is the two given signed, 32-bit values.
   40943           1 :    * We use 32-bit pieces because these are the size of integers on which
   40944           1 :    * Javascript performs bit-operations.  For operations like addition and
   40945           1 :    * multiplication, we split each number into 16-bit pieces, which can easily be
   40946           1 :    * multiplied within Javascript's floating-point representation without overflow
   40947           1 :    * or change in sign.
   40948           1 :    *
   40949           1 :    * In the algorithms below, we frequently reduce the negative case to the
   40950           1 :    * positive case by negating the input(s) and then post-processing the result.
   40951           1 :    * Note that we must ALWAYS check specially whether those values are MIN_VALUE
   40952           1 :    * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
   40953           1 :    * a positive number, it overflows back into a negative).  Not handling this
   40954           1 :    * case would often result in infinite recursion.
   40955           1 :    *
   40956           1 :    * @param {number} low  The low (signed) 32 bits of the long.
   40957           1 :    * @param {number} high  The high (signed) 32 bits of the long.
   40958           1 :    * @constructor
   40959           1 :    */
   40960           6 :   goog.math.Long = function(low, high) {
   40961           6 :     /**
   40962           6 :      * @type {number}
   40963           6 :      * @private
   40964           6 :      */
   40965           6 :     this.low_ = low | 0;  // force into 32 signed bits.
   40966           6 : 
   40967           6 :     /**
   40968           6 :      * @type {number}
   40969           6 :      * @private
   40970           6 :      */
   40971           6 :     this.high_ = high | 0;  // force into 32 signed bits.
   40972           6 :   };
   40973           1 : 
   40974           1 : 
   40975           1 :   // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the
   40976           1 :   // from* methods on which they depend.
   40977           1 : 
   40978           1 : 
   40979           1 :   /**
   40980           1 :    * A cache of the Long representations of small integer values.
   40981           1 :    * @type {!Object}
   40982           1 :    * @private
   40983           1 :    */
   40984           1 :   goog.math.Long.IntCache_ = {};
   40985           1 : 
   40986           1 : 
   40987           1 :   /**
   40988           1 :    * Returns a Long representing the given (32-bit) integer value.
   40989           1 :    * @param {number} value The 32-bit integer in question.
   40990           1 :    * @return {!goog.math.Long} The corresponding Long value.
   40991           1 :    */
   40992           4 :   goog.math.Long.fromInt = function(value) {
   40993           4 :     if (-128 <= value && value < 128) {
   40994           4 :       var cachedObj = goog.math.Long.IntCache_[value];
   40995           4 :       if (cachedObj) {
   40996           4 :         return cachedObj;
   40997           4 :       }
   40998           4 :     }
   40999           4 : 
   41000           4 :     var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0);
   41001           4 :     if (-128 <= value && value < 128) {
   41002           4 :       goog.math.Long.IntCache_[value] = obj;
   41003           4 :     }
   41004           4 :     return obj;
   41005           4 :   };
   41006           1 : 
   41007           1 : 
   41008           1 :   /**
   41009           1 :    * Returns a Long representing the given value, provided that it is a finite
   41010           1 :    * number.  Otherwise, zero is returned.
   41011           1 :    * @param {number} value The number in question.
   41012           1 :    * @return {!goog.math.Long} The corresponding Long value.
   41013           1 :    */
   41014           1 :   goog.math.Long.fromNumber = function(value) {
   41015           0 :     if (isNaN(value) || !isFinite(value)) {
   41016           0 :       return goog.math.Long.ZERO;
   41017           0 :     } else if (value <= -goog.math.Long.TWO_PWR_63_DBL_) {
   41018           0 :       return goog.math.Long.MIN_VALUE;
   41019           0 :     } else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_) {
   41020           0 :       return goog.math.Long.MAX_VALUE;
   41021           0 :     } else if (value < 0) {
   41022           0 :       return goog.math.Long.fromNumber(-value).negate();
   41023           0 :     } else {
   41024           0 :       return new goog.math.Long(
   41025           0 :           (value % goog.math.Long.TWO_PWR_32_DBL_) | 0,
   41026           0 :           (value / goog.math.Long.TWO_PWR_32_DBL_) | 0);
   41027           0 :     }
   41028           1 :   };
   41029           1 : 
   41030           1 : 
   41031           1 :   /**
   41032           1 :    * Returns a Long representing the 64-bit integer that comes by concatenating
   41033           1 :    * the given high and low bits.  Each is assumed to use 32 bits.
   41034           1 :    * @param {number} lowBits The low 32-bits.
   41035           1 :    * @param {number} highBits The high 32-bits.
   41036           1 :    * @return {!goog.math.Long} The corresponding Long value.
   41037           1 :    */
   41038           2 :   goog.math.Long.fromBits = function(lowBits, highBits) {
   41039           2 :     return new goog.math.Long(lowBits, highBits);
   41040           2 :   };
   41041           1 : 
   41042           1 : 
   41043           1 :   /**
   41044           1 :    * Returns a Long representation of the given string, written using the given
   41045           1 :    * radix.
   41046           1 :    * @param {string} str The textual representation of the Long.
   41047           1 :    * @param {number=} opt_radix The radix in which the text is written.
   41048           1 :    * @return {!goog.math.Long} The corresponding Long value.
   41049           1 :    */
   41050           1 :   goog.math.Long.fromString = function(str, opt_radix) {
   41051           0 :     if (str.length == 0) {
   41052           0 :       throw Error('number format error: empty string');
   41053           0 :     }
   41054           0 : 
   41055           0 :     var radix = opt_radix || 10;
   41056           0 :     if (radix < 2 || 36 < radix) {
   41057           0 :       throw Error('radix out of range: ' + radix);
   41058           0 :     }
   41059           0 : 
   41060           0 :     if (str.charAt(0) == '-') {
   41061           0 :       return goog.math.Long.fromString(str.substring(1), radix).negate();
   41062           0 :     } else if (str.indexOf('-') >= 0) {
   41063           0 :       throw Error('number format error: interior "-" character: ' + str);
   41064           0 :     }
   41065           0 : 
   41066           0 :     // Do several (8) digits each time through the loop, so as to
   41067           0 :     // minimize the calls to the very expensive emulated div.
   41068           0 :     var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8));
   41069           0 : 
   41070           0 :     var result = goog.math.Long.ZERO;
   41071           0 :     for (var i = 0; i < str.length; i += 8) {
   41072           0 :       var size = Math.min(8, str.length - i);
   41073           0 :       var value = parseInt(str.substring(i, i + size), radix);
   41074           0 :       if (size < 8) {
   41075           0 :         var power = goog.math.Long.fromNumber(Math.pow(radix, size));
   41076           0 :         result = result.multiply(power).add(goog.math.Long.fromNumber(value));
   41077           0 :       } else {
   41078           0 :         result = result.multiply(radixToPower);
   41079           0 :         result = result.add(goog.math.Long.fromNumber(value));
   41080           0 :       }
   41081           0 :     }
   41082           0 :     return result;
   41083           1 :   };
   41084           1 : 
   41085           1 : 
   41086           1 :   // NOTE: the compiler should inline these constant values below and then remove
   41087           1 :   // these variables, so there should be no runtime penalty for these.
   41088           1 : 
   41089           1 : 
   41090           1 :   /**
   41091           1 :    * Number used repeated below in calculations.  This must appear before the
   41092           1 :    * first call to any from* function below.
   41093           1 :    * @type {number}
   41094           1 :    * @private
   41095           1 :    */
   41096           1 :   goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16;
   41097           1 : 
   41098           1 : 
   41099           1 :   /**
   41100           1 :    * @type {number}
   41101           1 :    * @private
   41102           1 :    */
   41103           1 :   goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24;
   41104           1 : 
   41105           1 : 
   41106           1 :   /**
   41107           1 :    * @type {number}
   41108           1 :    * @private
   41109           1 :    */
   41110           1 :   goog.math.Long.TWO_PWR_32_DBL_ =
   41111           1 :       goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
   41112           1 : 
   41113           1 : 
   41114           1 :   /**
   41115           1 :    * @type {number}
   41116           1 :    * @private
   41117           1 :    */
   41118           1 :   goog.math.Long.TWO_PWR_31_DBL_ =
   41119           1 :       goog.math.Long.TWO_PWR_32_DBL_ / 2;
   41120           1 : 
   41121           1 : 
   41122           1 :   /**
   41123           1 :    * @type {number}
   41124           1 :    * @private
   41125           1 :    */
   41126           1 :   goog.math.Long.TWO_PWR_48_DBL_ =
   41127           1 :       goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
   41128           1 : 
   41129           1 : 
   41130           1 :   /**
   41131           1 :    * @type {number}
   41132           1 :    * @private
   41133           1 :    */
   41134           1 :   goog.math.Long.TWO_PWR_64_DBL_ =
   41135           1 :       goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_;
   41136           1 : 
   41137           1 : 
   41138           1 :   /**
   41139           1 :    * @type {number}
   41140           1 :    * @private
   41141           1 :    */
   41142           1 :   goog.math.Long.TWO_PWR_63_DBL_ =
   41143           1 :       goog.math.Long.TWO_PWR_64_DBL_ / 2;
   41144           1 : 
   41145           1 : 
   41146           1 :   /** @type {!goog.math.Long} */
   41147           1 :   goog.math.Long.ZERO = goog.math.Long.fromInt(0);
   41148           1 : 
   41149           1 : 
   41150           1 :   /** @type {!goog.math.Long} */
   41151           1 :   goog.math.Long.ONE = goog.math.Long.fromInt(1);
   41152           1 : 
   41153           1 : 
   41154           1 :   /** @type {!goog.math.Long} */
   41155           1 :   goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1);
   41156           1 : 
   41157           1 : 
   41158           1 :   /** @type {!goog.math.Long} */
   41159           1 :   goog.math.Long.MAX_VALUE =
   41160           1 :       goog.math.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0);
   41161           1 : 
   41162           1 : 
   41163           1 :   /** @type {!goog.math.Long} */
   41164           1 :   goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 0x80000000 | 0);
   41165           1 : 
   41166           1 : 
   41167           1 :   /**
   41168           1 :    * @type {!goog.math.Long}
   41169           1 :    * @private
   41170           1 :    */
   41171           1 :   goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24);
   41172           1 : 
   41173           1 : 
   41174           1 :   /** @return {number} The value, assuming it is a 32-bit integer. */
   41175           1 :   goog.math.Long.prototype.toInt = function() {
   41176           0 :     return this.low_;
   41177           1 :   };
   41178           1 : 
   41179           1 : 
   41180           1 :   /** @return {number} The closest floating-point representation to this value. */
   41181           1 :   goog.math.Long.prototype.toNumber = function() {
   41182           0 :     return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ +
   41183           0 :            this.getLowBitsUnsigned();
   41184           1 :   };
   41185           1 : 
   41186           1 : 
   41187           1 :   /**
   41188           1 :    * @param {number=} opt_radix The radix in which the text should be written.
   41189           1 :    * @return {string} The textual representation of this value.
   41190           1 :    */
   41191           1 :   goog.math.Long.prototype.toString = function(opt_radix) {
   41192           0 :     var radix = opt_radix || 10;
   41193           0 :     if (radix < 2 || 36 < radix) {
   41194           0 :       throw Error('radix out of range: ' + radix);
   41195           0 :     }
   41196           0 : 
   41197           0 :     if (this.isZero()) {
   41198           0 :       return '0';
   41199           0 :     }
   41200           0 : 
   41201           0 :     if (this.isNegative()) {
   41202           0 :       if (this.equals(goog.math.Long.MIN_VALUE)) {
   41203           0 :         // We need to change the Long value before it can be negated, so we remove
   41204           0 :         // the bottom-most digit in this base and then recurse to do the rest.
   41205           0 :         var radixLong = goog.math.Long.fromNumber(radix);
   41206           0 :         var div = this.div(radixLong);
   41207           0 :         var rem = div.multiply(radixLong).subtract(this);
   41208           0 :         return div.toString(radix) + rem.toInt().toString(radix);
   41209           0 :       } else {
   41210           0 :         return '-' + this.negate().toString(radix);
   41211           0 :       }
   41212           0 :     }
   41213           0 : 
   41214           0 :     // Do several (6) digits each time through the loop, so as to
   41215           0 :     // minimize the calls to the very expensive emulated div.
   41216           0 :     var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6));
   41217           0 : 
   41218           0 :     var rem = this;
   41219           0 :     var result = '';
   41220           0 :     while (true) {
   41221           0 :       var remDiv = rem.div(radixToPower);
   41222           0 :       var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();
   41223           0 :       var digits = intval.toString(radix);
   41224           0 : 
   41225           0 :       rem = remDiv;
   41226           0 :       if (rem.isZero()) {
   41227           0 :         return digits + result;
   41228           0 :       } else {
   41229           0 :         while (digits.length < 6) {
   41230           0 :           digits = '0' + digits;
   41231           0 :         }
   41232           0 :         result = '' + digits + result;
   41233           0 :       }
   41234           0 :     }
   41235           1 :   };
   41236           1 : 
   41237           1 : 
   41238           1 :   /** @return {number} The high 32-bits as a signed value. */
   41239           1 :   goog.math.Long.prototype.getHighBits = function() {
   41240           0 :     return this.high_;
   41241           1 :   };
   41242           1 : 
   41243           1 : 
   41244           1 :   /** @return {number} The low 32-bits as a signed value. */
   41245           1 :   goog.math.Long.prototype.getLowBits = function() {
   41246           0 :     return this.low_;
   41247           1 :   };
   41248           1 : 
   41249           1 : 
   41250           1 :   /** @return {number} The low 32-bits as an unsigned value. */
   41251           1 :   goog.math.Long.prototype.getLowBitsUnsigned = function() {
   41252           0 :     return (this.low_ >= 0) ?
   41253           0 :         this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_;
   41254           1 :   };
   41255           1 : 
   41256           1 : 
   41257           1 :   /**
   41258           1 :    * @return {number} Returns the number of bits needed to represent the absolute
   41259           1 :    *     value of this Long.
   41260           1 :    */
   41261           1 :   goog.math.Long.prototype.getNumBitsAbs = function() {
   41262           0 :     if (this.isNegative()) {
   41263           0 :       if (this.equals(goog.math.Long.MIN_VALUE)) {
   41264           0 :         return 64;
   41265           0 :       } else {
   41266           0 :         return this.negate().getNumBitsAbs();
   41267           0 :       }
   41268           0 :     } else {
   41269           0 :       var val = this.high_ != 0 ? this.high_ : this.low_;
   41270           0 :       for (var bit = 31; bit > 0; bit--) {
   41271           0 :         if ((val & (1 << bit)) != 0) {
   41272           0 :           break;
   41273           0 :         }
   41274           0 :       }
   41275           0 :       return this.high_ != 0 ? bit + 33 : bit + 1;
   41276           0 :     }
   41277           1 :   };
   41278           1 : 
   41279           1 : 
   41280           1 :   /** @return {boolean} Whether this value is zero. */
   41281           1 :   goog.math.Long.prototype.isZero = function() {
   41282           0 :     return this.high_ == 0 && this.low_ == 0;
   41283           1 :   };
   41284           1 : 
   41285           1 : 
   41286           1 :   /** @return {boolean} Whether this value is negative. */
   41287           1 :   goog.math.Long.prototype.isNegative = function() {
   41288           0 :     return this.high_ < 0;
   41289           1 :   };
   41290           1 : 
   41291           1 : 
   41292           1 :   /** @return {boolean} Whether this value is odd. */
   41293           1 :   goog.math.Long.prototype.isOdd = function() {
   41294           0 :     return (this.low_ & 1) == 1;
   41295           1 :   };
   41296           1 : 
   41297           1 : 
   41298           1 :   /**
   41299           1 :    * @param {goog.math.Long} other Long to compare against.
   41300           1 :    * @return {boolean} Whether this Long equals the other.
   41301           1 :    */
   41302           1 :   goog.math.Long.prototype.equals = function(other) {
   41303           0 :     return (this.high_ == other.high_) && (this.low_ == other.low_);
   41304           1 :   };
   41305           1 : 
   41306           1 : 
   41307           1 :   /**
   41308           1 :    * @param {goog.math.Long} other Long to compare against.
   41309           1 :    * @return {boolean} Whether this Long does not equal the other.
   41310           1 :    */
   41311           1 :   goog.math.Long.prototype.notEquals = function(other) {
   41312           0 :     return (this.high_ != other.high_) || (this.low_ != other.low_);
   41313           1 :   };
   41314           1 : 
   41315           1 : 
   41316           1 :   /**
   41317           1 :    * @param {goog.math.Long} other Long to compare against.
   41318           1 :    * @return {boolean} Whether this Long is less than the other.
   41319           1 :    */
   41320           1 :   goog.math.Long.prototype.lessThan = function(other) {
   41321           0 :     return this.compare(other) < 0;
   41322           1 :   };
   41323           1 : 
   41324           1 : 
   41325           1 :   /**
   41326           1 :    * @param {goog.math.Long} other Long to compare against.
   41327           1 :    * @return {boolean} Whether this Long is less than or equal to the other.
   41328           1 :    */
   41329           1 :   goog.math.Long.prototype.lessThanOrEqual = function(other) {
   41330           0 :     return this.compare(other) <= 0;
   41331           1 :   };
   41332           1 : 
   41333           1 : 
   41334           1 :   /**
   41335           1 :    * @param {goog.math.Long} other Long to compare against.
   41336           1 :    * @return {boolean} Whether this Long is greater than the other.
   41337           1 :    */
   41338           1 :   goog.math.Long.prototype.greaterThan = function(other) {
   41339           0 :     return this.compare(other) > 0;
   41340           1 :   };
   41341           1 : 
   41342           1 : 
   41343           1 :   /**
   41344           1 :    * @param {goog.math.Long} other Long to compare against.
   41345           1 :    * @return {boolean} Whether this Long is greater than or equal to the other.
   41346           1 :    */
   41347           1 :   goog.math.Long.prototype.greaterThanOrEqual = function(other) {
   41348           0 :     return this.compare(other) >= 0;
   41349           1 :   };
   41350           1 : 
   41351           1 : 
   41352           1 :   /**
   41353           1 :    * Compares this Long with the given one.
   41354           1 :    * @param {goog.math.Long} other Long to compare against.
   41355           1 :    * @return {number} 0 if they are the same, 1 if the this is greater, and -1
   41356           1 :    *     if the given one is greater.
   41357           1 :    */
   41358           1 :   goog.math.Long.prototype.compare = function(other) {
   41359           0 :     if (this.equals(other)) {
   41360           0 :       return 0;
   41361           0 :     }
   41362           0 : 
   41363           0 :     var thisNeg = this.isNegative();
   41364           0 :     var otherNeg = other.isNegative();
   41365           0 :     if (thisNeg && !otherNeg) {
   41366           0 :       return -1;
   41367           0 :     }
   41368           0 :     if (!thisNeg && otherNeg) {
   41369           0 :       return 1;
   41370           0 :     }
   41371           0 : 
   41372           0 :     // at this point, the signs are the same, so subtraction will not overflow
   41373           0 :     if (this.subtract(other).isNegative()) {
   41374           0 :       return -1;
   41375           0 :     } else {
   41376           0 :       return 1;
   41377           0 :     }
   41378           1 :   };
   41379           1 : 
   41380           1 : 
   41381           1 :   /** @return {!goog.math.Long} The negation of this value. */
   41382           1 :   goog.math.Long.prototype.negate = function() {
   41383           0 :     if (this.equals(goog.math.Long.MIN_VALUE)) {
   41384           0 :       return goog.math.Long.MIN_VALUE;
   41385           0 :     } else {
   41386           0 :       return this.not().add(goog.math.Long.ONE);
   41387           0 :     }
   41388           1 :   };
   41389           1 : 
   41390           1 : 
   41391           1 :   /**
   41392           1 :    * Returns the sum of this and the given Long.
   41393           1 :    * @param {goog.math.Long} other Long to add to this one.
   41394           1 :    * @return {!goog.math.Long} The sum of this and the given Long.
   41395           1 :    */
   41396           1 :   goog.math.Long.prototype.add = function(other) {
   41397           0 :     // Divide each number into 4 chunks of 16 bits, and then sum the chunks.
   41398           0 : 
   41399           0 :     var a48 = this.high_ >>> 16;
   41400           0 :     var a32 = this.high_ & 0xFFFF;
   41401           0 :     var a16 = this.low_ >>> 16;
   41402           0 :     var a00 = this.low_ & 0xFFFF;
   41403           0 : 
   41404           0 :     var b48 = other.high_ >>> 16;
   41405           0 :     var b32 = other.high_ & 0xFFFF;
   41406           0 :     var b16 = other.low_ >>> 16;
   41407           0 :     var b00 = other.low_ & 0xFFFF;
   41408           0 : 
   41409           0 :     var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
   41410           0 :     c00 += a00 + b00;
   41411           0 :     c16 += c00 >>> 16;
   41412           0 :     c00 &= 0xFFFF;
   41413           0 :     c16 += a16 + b16;
   41414           0 :     c32 += c16 >>> 16;
   41415           0 :     c16 &= 0xFFFF;
   41416           0 :     c32 += a32 + b32;
   41417           0 :     c48 += c32 >>> 16;
   41418           0 :     c32 &= 0xFFFF;
   41419           0 :     c48 += a48 + b48;
   41420           0 :     c48 &= 0xFFFF;
   41421           0 :     return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
   41422           1 :   };
   41423           1 : 
   41424           1 : 
   41425           1 :   /**
   41426           1 :    * Returns the difference of this and the given Long.
   41427           1 :    * @param {goog.math.Long} other Long to subtract from this.
   41428           1 :    * @return {!goog.math.Long} The difference of this and the given Long.
   41429           1 :    */
   41430           1 :   goog.math.Long.prototype.subtract = function(other) {
   41431           0 :     return this.add(other.negate());
   41432           1 :   };
   41433           1 : 
   41434           1 : 
   41435           1 :   /**
   41436           1 :    * Returns the product of this and the given long.
   41437           1 :    * @param {goog.math.Long} other Long to multiply with this.
   41438           1 :    * @return {!goog.math.Long} The product of this and the other.
   41439           1 :    */
   41440           1 :   goog.math.Long.prototype.multiply = function(other) {
   41441           0 :     if (this.isZero()) {
   41442           0 :       return goog.math.Long.ZERO;
   41443           0 :     } else if (other.isZero()) {
   41444           0 :       return goog.math.Long.ZERO;
   41445           0 :     }
   41446           0 : 
   41447           0 :     if (this.equals(goog.math.Long.MIN_VALUE)) {
   41448           0 :       return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
   41449           0 :     } else if (other.equals(goog.math.Long.MIN_VALUE)) {
   41450           0 :       return this.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
   41451           0 :     }
   41452           0 : 
   41453           0 :     if (this.isNegative()) {
   41454           0 :       if (other.isNegative()) {
   41455           0 :         return this.negate().multiply(other.negate());
   41456           0 :       } else {
   41457           0 :         return this.negate().multiply(other).negate();
   41458           0 :       }
   41459           0 :     } else if (other.isNegative()) {
   41460           0 :       return this.multiply(other.negate()).negate();
   41461           0 :     }
   41462           0 : 
   41463           0 :     // If both longs are small, use float multiplication
   41464           0 :     if (this.lessThan(goog.math.Long.TWO_PWR_24_) &&
   41465           0 :         other.lessThan(goog.math.Long.TWO_PWR_24_)) {
   41466           0 :       return goog.math.Long.fromNumber(this.toNumber() * other.toNumber());
   41467           0 :     }
   41468           0 : 
   41469           0 :     // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.
   41470           0 :     // We can skip products that would overflow.
   41471           0 : 
   41472           0 :     var a48 = this.high_ >>> 16;
   41473           0 :     var a32 = this.high_ & 0xFFFF;
   41474           0 :     var a16 = this.low_ >>> 16;
   41475           0 :     var a00 = this.low_ & 0xFFFF;
   41476           0 : 
   41477           0 :     var b48 = other.high_ >>> 16;
   41478           0 :     var b32 = other.high_ & 0xFFFF;
   41479           0 :     var b16 = other.low_ >>> 16;
   41480           0 :     var b00 = other.low_ & 0xFFFF;
   41481           0 : 
   41482           0 :     var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
   41483           0 :     c00 += a00 * b00;
   41484           0 :     c16 += c00 >>> 16;
   41485           0 :     c00 &= 0xFFFF;
   41486           0 :     c16 += a16 * b00;
   41487           0 :     c32 += c16 >>> 16;
   41488           0 :     c16 &= 0xFFFF;
   41489           0 :     c16 += a00 * b16;
   41490           0 :     c32 += c16 >>> 16;
   41491           0 :     c16 &= 0xFFFF;
   41492           0 :     c32 += a32 * b00;
   41493           0 :     c48 += c32 >>> 16;
   41494           0 :     c32 &= 0xFFFF;
   41495           0 :     c32 += a16 * b16;
   41496           0 :     c48 += c32 >>> 16;
   41497           0 :     c32 &= 0xFFFF;
   41498           0 :     c32 += a00 * b32;
   41499           0 :     c48 += c32 >>> 16;
   41500           0 :     c32 &= 0xFFFF;
   41501           0 :     c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
   41502           0 :     c48 &= 0xFFFF;
   41503           0 :     return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
   41504           1 :   };
   41505           1 : 
   41506           1 : 
   41507           1 :   /**
   41508           1 :    * Returns this Long divided by the given one.
   41509           1 :    * @param {goog.math.Long} other Long by which to divide.
   41510           1 :    * @return {!goog.math.Long} This Long divided by the given one.
   41511           1 :    */
   41512           1 :   goog.math.Long.prototype.div = function(other) {
   41513           0 :     if (other.isZero()) {
   41514           0 :       throw Error('division by zero');
   41515           0 :     } else if (this.isZero()) {
   41516           0 :       return goog.math.Long.ZERO;
   41517           0 :     }
   41518           0 : 
   41519           0 :     if (this.equals(goog.math.Long.MIN_VALUE)) {
   41520           0 :       if (other.equals(goog.math.Long.ONE) ||
   41521           0 :           other.equals(goog.math.Long.NEG_ONE)) {
   41522           0 :         return goog.math.Long.MIN_VALUE;  // recall that -MIN_VALUE == MIN_VALUE
   41523           0 :       } else if (other.equals(goog.math.Long.MIN_VALUE)) {
   41524           0 :         return goog.math.Long.ONE;
   41525           0 :       } else {
   41526           0 :         // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
   41527           0 :         var halfThis = this.shiftRight(1);
   41528           0 :         var approx = halfThis.div(other).shiftLeft(1);
   41529           0 :         if (approx.equals(goog.math.Long.ZERO)) {
   41530           0 :           return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE;
   41531           0 :         } else {
   41532           0 :           var rem = this.subtract(other.multiply(approx));
   41533           0 :           var result = approx.add(rem.div(other));
   41534           0 :           return result;
   41535           0 :         }
   41536           0 :       }
   41537           0 :     } else if (other.equals(goog.math.Long.MIN_VALUE)) {
   41538           0 :       return goog.math.Long.ZERO;
   41539           0 :     }
   41540           0 : 
   41541           0 :     if (this.isNegative()) {
   41542           0 :       if (other.isNegative()) {
   41543           0 :         return this.negate().div(other.negate());
   41544           0 :       } else {
   41545           0 :         return this.negate().div(other).negate();
   41546           0 :       }
   41547           0 :     } else if (other.isNegative()) {
   41548           0 :       return this.div(other.negate()).negate();
   41549           0 :     }
   41550           0 : 
   41551           0 :     // Repeat the following until the remainder is less than other:  find a
   41552           0 :     // floating-point that approximates remainder / other *from below*, add this
   41553           0 :     // into the result, and subtract it from the remainder.  It is critical that
   41554           0 :     // the approximate value is less than or equal to the real value so that the
   41555           0 :     // remainder never becomes negative.
   41556           0 :     var res = goog.math.Long.ZERO;
   41557           0 :     var rem = this;
   41558           0 :     while (rem.greaterThanOrEqual(other)) {
   41559           0 :       // Approximate the result of division. This may be a little greater or
   41560           0 :       // smaller than the actual value.
   41561           0 :       var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));
   41562           0 : 
   41563           0 :       // We will tweak the approximate result by changing it in the 48-th digit or
   41564           0 :       // the smallest non-fractional digit, whichever is larger.
   41565           0 :       var log2 = Math.ceil(Math.log(approx) / Math.LN2);
   41566           0 :       var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48);
   41567           0 : 
   41568           0 :       // Decrease the approximation until it is smaller than the remainder.  Note
   41569           0 :       // that if it is too large, the product overflows and is negative.
   41570           0 :       var approxRes = goog.math.Long.fromNumber(approx);
   41571           0 :       var approxRem = approxRes.multiply(other);
   41572           0 :       while (approxRem.isNegative() || approxRem.greaterThan(rem)) {
   41573           0 :         approx -= delta;
   41574           0 :         approxRes = goog.math.Long.fromNumber(approx);
   41575           0 :         approxRem = approxRes.multiply(other);
   41576           0 :       }
   41577           0 : 
   41578           0 :       // We know the answer can't be zero... and actually, zero would cause
   41579           0 :       // infinite recursion since we would make no progress.
   41580           0 :       if (approxRes.isZero()) {
   41581           0 :         approxRes = goog.math.Long.ONE;
   41582           0 :       }
   41583           0 : 
   41584           0 :       res = res.add(approxRes);
   41585           0 :       rem = rem.subtract(approxRem);
   41586           0 :     }
   41587           0 :     return res;
   41588           1 :   };
   41589           1 : 
   41590           1 : 
   41591           1 :   /**
   41592           1 :    * Returns this Long modulo the given one.
   41593           1 :    * @param {goog.math.Long} other Long by which to mod.
   41594           1 :    * @return {!goog.math.Long} This Long modulo the given one.
   41595           1 :    */
   41596           1 :   goog.math.Long.prototype.modulo = function(other) {
   41597           0 :     return this.subtract(this.div(other).multiply(other));
   41598           1 :   };
   41599           1 : 
   41600           1 : 
   41601           1 :   /** @return {!goog.math.Long} The bitwise-NOT of this value. */
   41602           1 :   goog.math.Long.prototype.not = function() {
   41603           0 :     return goog.math.Long.fromBits(~this.low_, ~this.high_);
   41604           1 :   };
   41605           1 : 
   41606           1 : 
   41607           1 :   /**
   41608           1 :    * Returns the bitwise-AND of this Long and the given one.
   41609           1 :    * @param {goog.math.Long} other The Long with which to AND.
   41610           1 :    * @return {!goog.math.Long} The bitwise-AND of this and the other.
   41611           1 :    */
   41612           1 :   goog.math.Long.prototype.and = function(other) {
   41613           0 :     return goog.math.Long.fromBits(this.low_ & other.low_,
   41614           0 :                                    this.high_ & other.high_);
   41615           1 :   };
   41616           1 : 
   41617           1 : 
   41618           1 :   /**
   41619           1 :    * Returns the bitwise-OR of this Long and the given one.
   41620           1 :    * @param {goog.math.Long} other The Long with which to OR.
   41621           1 :    * @return {!goog.math.Long} The bitwise-OR of this and the other.
   41622           1 :    */
   41623           1 :   goog.math.Long.prototype.or = function(other) {
   41624           0 :     return goog.math.Long.fromBits(this.low_ | other.low_,
   41625           0 :                                    this.high_ | other.high_);
   41626           1 :   };
   41627           1 : 
   41628           1 : 
   41629           1 :   /**
   41630           1 :    * Returns the bitwise-XOR of this Long and the given one.
   41631           1 :    * @param {goog.math.Long} other The Long with which to XOR.
   41632           1 :    * @return {!goog.math.Long} The bitwise-XOR of this and the other.
   41633           1 :    */
   41634           1 :   goog.math.Long.prototype.xor = function(other) {
   41635           0 :     return goog.math.Long.fromBits(this.low_ ^ other.low_,
   41636           0 :                                    this.high_ ^ other.high_);
   41637           1 :   };
   41638           1 : 
   41639           1 : 
   41640           1 :   /**
   41641           1 :    * Returns this Long with bits shifted to the left by the given amount.
   41642           1 :    * @param {number} numBits The number of bits by which to shift.
   41643           1 :    * @return {!goog.math.Long} This shifted to the left by the given amount.
   41644           1 :    */
   41645           1 :   goog.math.Long.prototype.shiftLeft = function(numBits) {
   41646           0 :     numBits &= 63;
   41647           0 :     if (numBits == 0) {
   41648           0 :       return this;
   41649           0 :     } else {
   41650           0 :       var low = this.low_;
   41651           0 :       if (numBits < 32) {
   41652           0 :         var high = this.high_;
   41653           0 :         return goog.math.Long.fromBits(
   41654           0 :             low << numBits,
   41655           0 :             (high << numBits) | (low >>> (32 - numBits)));
   41656           0 :       } else {
   41657           0 :         return goog.math.Long.fromBits(0, low << (numBits - 32));
   41658           0 :       }
   41659           0 :     }
   41660           1 :   };
   41661           1 : 
   41662           1 : 
   41663           1 :   /**
   41664           1 :    * Returns this Long with bits shifted to the right by the given amount.
   41665           1 :    * @param {number} numBits The number of bits by which to shift.
   41666           1 :    * @return {!goog.math.Long} This shifted to the right by the given amount.
   41667           1 :    */
   41668           1 :   goog.math.Long.prototype.shiftRight = function(numBits) {
   41669           0 :     numBits &= 63;
   41670           0 :     if (numBits == 0) {
   41671           0 :       return this;
   41672           0 :     } else {
   41673           0 :       var high = this.high_;
   41674           0 :       if (numBits < 32) {
   41675           0 :         var low = this.low_;
   41676           0 :         return goog.math.Long.fromBits(
   41677           0 :             (low >>> numBits) | (high << (32 - numBits)),
   41678           0 :             high >> numBits);
   41679           0 :       } else {
   41680           0 :         return goog.math.Long.fromBits(
   41681           0 :             high >> (numBits - 32),
   41682           0 :             high >= 0 ? 0 : -1);
   41683           0 :       }
   41684           0 :     }
   41685           1 :   };
   41686           1 : 
   41687           1 : 
   41688           1 :   /**
   41689           1 :    * Returns this Long with bits shifted to the right by the given amount, with
   41690           1 :    * the new top bits matching the current sign bit.
   41691           1 :    * @param {number} numBits The number of bits by which to shift.
   41692           1 :    * @return {!goog.math.Long} This shifted to the right by the given amount, with
   41693           1 :    *     zeros placed into the new leading bits.
   41694           1 :    */
   41695           1 :   goog.math.Long.prototype.shiftRightUnsigned = function(numBits) {
   41696           0 :     numBits &= 63;
   41697           0 :     if (numBits == 0) {
   41698           0 :       return this;
   41699           0 :     } else {
   41700           0 :       var high = this.high_;
   41701           0 :       if (numBits < 32) {
   41702           0 :         var low = this.low_;
   41703           0 :         return goog.math.Long.fromBits(
   41704           0 :             (low >>> numBits) | (high << (32 - numBits)),
   41705           0 :             high >>> numBits);
   41706           0 :       } else if (numBits == 32) {
   41707           0 :         return goog.math.Long.fromBits(high, 0);
   41708           0 :       } else {
   41709           0 :         return goog.math.Long.fromBits(high >>> (numBits - 32), 0);
   41710           0 :       }
   41711           0 :     }
   41712           1 :   };
   41713           1 : 
   41714           1 :   //======= begin jsbn =======
   41715           1 : 
   41716           1 :   var navigator = { appName: 'Modern Browser' }; // polyfill a little
   41717           1 : 
   41718           1 :   // Copyright (c) 2005  Tom Wu
   41719           1 :   // All Rights Reserved.
   41720           1 :   // http://www-cs-students.stanford.edu/~tjw/jsbn/
   41721           1 : 
   41722           1 :   /*
   41723           1 :    * Copyright (c) 2003-2005  Tom Wu
   41724           1 :    * All Rights Reserved.
   41725           1 :    *
   41726           1 :    * Permission is hereby granted, free of charge, to any person obtaining
   41727           1 :    * a copy of this software and associated documentation files (the
   41728           1 :    * "Software"), to deal in the Software without restriction, including
   41729           1 :    * without limitation the rights to use, copy, modify, merge, publish,
   41730           1 :    * distribute, sublicense, and/or sell copies of the Software, and to
   41731           1 :    * permit persons to whom the Software is furnished to do so, subject to
   41732           1 :    * the following conditions:
   41733           1 :    *
   41734           1 :    * The above copyright notice and this permission notice shall be
   41735           1 :    * included in all copies or substantial portions of the Software.
   41736           1 :    *
   41737           1 :    * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
   41738           1 :    * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
   41739           1 :    * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
   41740           1 :    *
   41741           1 :    * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
   41742           1 :    * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
   41743           1 :    * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
   41744           1 :    * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
   41745           1 :    * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   41746           1 :    *
   41747           1 :    * In addition, the following condition applies:
   41748           1 :    *
   41749           1 :    * All redistributions must retain an intact copy of this copyright notice
   41750           1 :    * and disclaimer.
   41751           1 :    */
   41752           1 : 
   41753           1 :   // Basic JavaScript BN library - subset useful for RSA encryption.
   41754           1 : 
   41755           1 :   // Bits per digit
   41756           1 :   var dbits;
   41757           1 : 
   41758           1 :   // JavaScript engine analysis
   41759           1 :   var canary = 0xdeadbeefcafe;
   41760           1 :   var j_lm = ((canary&0xffffff)==0xefcafe);
   41761           1 : 
   41762           1 :   // (public) Constructor
   41763           2 :   function BigInteger(a,b,c) {
   41764           2 :     if(a != null)
   41765           2 :       if("number" == typeof a) this.fromNumber(a,b,c);
   41766           2 :       else if(b == null && "string" != typeof a) this.fromString(a,256);
   41767           2 :       else this.fromString(a,b);
   41768           2 :   }
   41769           1 : 
   41770           1 :   // return new, unset BigInteger
   41771           2 :   function nbi() { return new BigInteger(null); }
   41772           1 : 
   41773           1 :   // am: Compute w_j += (x*this_i), propagate carries,
   41774           1 :   // c is initial carry, returns final carry.
   41775           1 :   // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
   41776           1 :   // We need to select the fastest one that works in this environment.
   41777           1 : 
   41778           1 :   // am1: use a single mult and divide to get the high bits,
   41779           1 :   // max digit bits should be 26 because
   41780           1 :   // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
   41781           1 :   function am1(i,x,w,j,c,n) {
   41782           0 :     while(--n >= 0) {
   41783           0 :       var v = x*this[i++]+w[j]+c;
   41784           0 :       c = Math.floor(v/0x4000000);
   41785           0 :       w[j++] = v&0x3ffffff;
   41786           0 :     }
   41787           0 :     return c;
   41788           1 :   }
   41789           1 :   // am2 avoids a big mult-and-extract completely.
   41790           1 :   // Max digit bits should be <= 30 because we do bitwise ops
   41791           1 :   // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
   41792           1 :   function am2(i,x,w,j,c,n) {
   41793           0 :     var xl = x&0x7fff, xh = x>>15;
   41794           0 :     while(--n >= 0) {
   41795           0 :       var l = this[i]&0x7fff;
   41796           0 :       var h = this[i++]>>15;
   41797           0 :       var m = xh*l+h*xl;
   41798           0 :       l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
   41799           0 :       c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
   41800           0 :       w[j++] = l&0x3fffffff;
   41801           0 :     }
   41802           0 :     return c;
   41803           1 :   }
   41804           1 :   // Alternately, set max digit bits to 28 since some
   41805           1 :   // browsers slow down when dealing with 32-bit numbers.
   41806           1 :   function am3(i,x,w,j,c,n) {
   41807           0 :     var xl = x&0x3fff, xh = x>>14;
   41808           0 :     while(--n >= 0) {
   41809           0 :       var l = this[i]&0x3fff;
   41810           0 :       var h = this[i++]>>14;
   41811           0 :       var m = xh*l+h*xl;
   41812           0 :       l = xl*l+((m&0x3fff)<<14)+w[j]+c;
   41813           0 :       c = (l>>28)+(m>>14)+xh*h;
   41814           0 :       w[j++] = l&0xfffffff;
   41815           0 :     }
   41816           0 :     return c;
   41817           1 :   }
   41818           1 :   if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
   41819           1 :     BigInteger.prototype.am = am2;
   41820           1 :     dbits = 30;
   41821           1 :   }
   41822           1 :   else if(j_lm && (navigator.appName != "Netscape")) {
   41823           1 :     BigInteger.prototype.am = am1;
   41824           1 :     dbits = 26;
   41825           1 :   }
   41826           1 :   else { // Mozilla/Netscape seems to prefer am3
   41827           1 :     BigInteger.prototype.am = am3;
   41828           1 :     dbits = 28;
   41829           1 :   }
   41830           1 : 
   41831           1 :   BigInteger.prototype.DB = dbits;
   41832           1 :   BigInteger.prototype.DM = ((1<<dbits)-1);
   41833           1 :   BigInteger.prototype.DV = (1<<dbits);
   41834           1 : 
   41835           1 :   var BI_FP = 52;
   41836           1 :   BigInteger.prototype.FV = Math.pow(2,BI_FP);
   41837           1 :   BigInteger.prototype.F1 = BI_FP-dbits;
   41838           1 :   BigInteger.prototype.F2 = 2*dbits-BI_FP;
   41839           1 : 
   41840           1 :   // Digit conversions
   41841           1 :   var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
   41842           1 :   var BI_RC = new Array();
   41843           1 :   var rr,vv;
   41844           1 :   rr = "0".charCodeAt(0);
   41845           1 :   for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
   41846           1 :   rr = "a".charCodeAt(0);
   41847           1 :   for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
   41848           1 :   rr = "A".charCodeAt(0);
   41849           1 :   for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
   41850           1 : 
   41851           1 :   function int2char(n) { return BI_RM.charAt(n); }
   41852           1 :   function intAt(s,i) {
   41853           0 :     var c = BI_RC[s.charCodeAt(i)];
   41854           0 :     return (c==null)?-1:c;
   41855           1 :   }
   41856           1 : 
   41857           1 :   // (protected) copy this to r
   41858           1 :   function bnpCopyTo(r) {
   41859           0 :     for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
   41860           0 :     r.t = this.t;
   41861           0 :     r.s = this.s;
   41862           1 :   }
   41863           1 : 
   41864           1 :   // (protected) set from integer value x, -DV <= x < DV
   41865           2 :   function bnpFromInt(x) {
   41866           2 :     this.t = 1;
   41867           2 :     this.s = (x<0)?-1:0;
   41868           2 :     if(x > 0) this[0] = x;
   41869           2 :     else if(x < -1) this[0] = x+DV;
   41870           2 :     else this.t = 0;
   41871           2 :   }
   41872           1 : 
   41873           1 :   // return bigint initialized to value
   41874           2 :   function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
   41875           1 : 
   41876           1 :   // (protected) set from string and radix
   41877           1 :   function bnpFromString(s,b) {
   41878           0 :     var k;
   41879           0 :     if(b == 16) k = 4;
   41880           0 :     else if(b == 8) k = 3;
   41881           0 :     else if(b == 256) k = 8; // byte array
   41882           0 :     else if(b == 2) k = 1;
   41883           0 :     else if(b == 32) k = 5;
   41884           0 :     else if(b == 4) k = 2;
   41885           0 :     else { this.fromRadix(s,b); return; }
   41886           0 :     this.t = 0;
   41887           0 :     this.s = 0;
   41888           0 :     var i = s.length, mi = false, sh = 0;
   41889           0 :     while(--i >= 0) {
   41890           0 :       var x = (k==8)?s[i]&0xff:intAt(s,i);
   41891           0 :       if(x < 0) {
   41892           0 :         if(s.charAt(i) == "-") mi = true;
   41893           0 :         continue;
   41894           0 :       }
   41895           0 :       mi = false;
   41896           0 :       if(sh == 0)
   41897           0 :         this[this.t++] = x;
   41898           0 :       else if(sh+k > this.DB) {
   41899           0 :         this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
   41900           0 :         this[this.t++] = (x>>(this.DB-sh));
   41901           0 :       }
   41902           0 :       else
   41903           0 :         this[this.t-1] |= x<<sh;
   41904           0 :       sh += k;
   41905           0 :       if(sh >= this.DB) sh -= this.DB;
   41906           0 :     }
   41907           0 :     if(k == 8 && (s[0]&0x80) != 0) {
   41908           0 :       this.s = -1;
   41909           0 :       if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
   41910           0 :     }
   41911           0 :     this.clamp();
   41912           0 :     if(mi) BigInteger.ZERO.subTo(this,this);
   41913           1 :   }
   41914           1 : 
   41915           1 :   // (protected) clamp off excess high words
   41916           1 :   function bnpClamp() {
   41917           0 :     var c = this.s&this.DM;
   41918           0 :     while(this.t > 0 && this[this.t-1] == c) --this.t;
   41919           1 :   }
   41920           1 : 
   41921           1 :   // (public) return string representation in given radix
   41922           1 :   function bnToString(b) {
   41923           0 :     if(this.s < 0) return "-"+this.negate().toString(b);
   41924           0 :     var k;
   41925           0 :     if(b == 16) k = 4;
   41926           0 :     else if(b == 8) k = 3;
   41927           0 :     else if(b == 2) k = 1;
   41928           0 :     else if(b == 32) k = 5;
   41929           0 :     else if(b == 4) k = 2;
   41930           0 :     else return this.toRadix(b);
   41931           0 :     var km = (1<<k)-1, d, m = false, r = "", i = this.t;
   41932           0 :     var p = this.DB-(i*this.DB)%k;
   41933           0 :     if(i-- > 0) {
   41934           0 :       if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
   41935           0 :       while(i >= 0) {
   41936           0 :         if(p < k) {
   41937           0 :           d = (this[i]&((1<<p)-1))<<(k-p);
   41938           0 :           d |= this[--i]>>(p+=this.DB-k);
   41939           0 :         }
   41940           0 :         else {
   41941           0 :           d = (this[i]>>(p-=k))&km;
   41942           0 :           if(p <= 0) { p += this.DB; --i; }
   41943           0 :         }
   41944           0 :         if(d > 0) m = true;
   41945           0 :         if(m) r += int2char(d);
   41946           0 :       }
   41947           0 :     }
   41948           0 :     return m?r:"0";
   41949           1 :   }
   41950           1 : 
   41951           1 :   // (public) -this
   41952           1 :   function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
   41953           1 : 
   41954           1 :   // (public) |this|
   41955           1 :   function bnAbs() { return (this.s<0)?this.negate():this; }
   41956           1 : 
   41957           1 :   // (public) return + if this > a, - if this < a, 0 if equal
   41958           1 :   function bnCompareTo(a) {
   41959           0 :     var r = this.s-a.s;
   41960           0 :     if(r != 0) return r;
   41961           0 :     var i = this.t;
   41962           0 :     r = i-a.t;
   41963           0 :     if(r != 0) return (this.s<0)?-r:r;
   41964           0 :     while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
   41965           0 :     return 0;
   41966           1 :   }
   41967           1 : 
   41968           1 :   // returns bit length of the integer x
   41969           1 :   function nbits(x) {
   41970           0 :     var r = 1, t;
   41971           0 :     if((t=x>>>16) != 0) { x = t; r += 16; }
   41972           0 :     if((t=x>>8) != 0) { x = t; r += 8; }
   41973           0 :     if((t=x>>4) != 0) { x = t; r += 4; }
   41974           0 :     if((t=x>>2) != 0) { x = t; r += 2; }
   41975           0 :     if((t=x>>1) != 0) { x = t; r += 1; }
   41976           0 :     return r;
   41977           1 :   }
   41978           1 : 
   41979           1 :   // (public) return the number of bits in "this"
   41980           1 :   function bnBitLength() {
   41981           0 :     if(this.t <= 0) return 0;
   41982           0 :     return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
   41983           1 :   }
   41984           1 : 
   41985           1 :   // (protected) r = this << n*DB
   41986           1 :   function bnpDLShiftTo(n,r) {
   41987           0 :     var i;
   41988           0 :     for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
   41989           0 :     for(i = n-1; i >= 0; --i) r[i] = 0;
   41990           0 :     r.t = this.t+n;
   41991           0 :     r.s = this.s;
   41992           1 :   }
   41993           1 : 
   41994           1 :   // (protected) r = this >> n*DB
   41995           1 :   function bnpDRShiftTo(n,r) {
   41996           0 :     for(var i = n; i < this.t; ++i) r[i-n] = this[i];
   41997           0 :     r.t = Math.max(this.t-n,0);
   41998           0 :     r.s = this.s;
   41999           1 :   }
   42000           1 : 
   42001           1 :   // (protected) r = this << n
   42002           1 :   function bnpLShiftTo(n,r) {
   42003           0 :     var bs = n%this.DB;
   42004           0 :     var cbs = this.DB-bs;
   42005           0 :     var bm = (1<<cbs)-1;
   42006           0 :     var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
   42007           0 :     for(i = this.t-1; i >= 0; --i) {
   42008           0 :       r[i+ds+1] = (this[i]>>cbs)|c;
   42009           0 :       c = (this[i]&bm)<<bs;
   42010           0 :     }
   42011           0 :     for(i = ds-1; i >= 0; --i) r[i] = 0;
   42012           0 :     r[ds] = c;
   42013           0 :     r.t = this.t+ds+1;
   42014           0 :     r.s = this.s;
   42015           0 :     r.clamp();
   42016           1 :   }
   42017           1 : 
   42018           1 :   // (protected) r = this >> n
   42019           1 :   function bnpRShiftTo(n,r) {
   42020           0 :     r.s = this.s;
   42021           0 :     var ds = Math.floor(n/this.DB);
   42022           0 :     if(ds >= this.t) { r.t = 0; return; }
   42023           0 :     var bs = n%this.DB;
   42024           0 :     var cbs = this.DB-bs;
   42025           0 :     var bm = (1<<bs)-1;
   42026           0 :     r[0] = this[ds]>>bs;
   42027           0 :     for(var i = ds+1; i < this.t; ++i) {
   42028           0 :       r[i-ds-1] |= (this[i]&bm)<<cbs;
   42029           0 :       r[i-ds] = this[i]>>bs;
   42030           0 :     }
   42031           0 :     if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
   42032           0 :     r.t = this.t-ds;
   42033           0 :     r.clamp();
   42034           1 :   }
   42035           1 : 
   42036           1 :   // (protected) r = this - a
   42037           1 :   function bnpSubTo(a,r) {
   42038           0 :     var i = 0, c = 0, m = Math.min(a.t,this.t);
   42039           0 :     while(i < m) {
   42040           0 :       c += this[i]-a[i];
   42041           0 :       r[i++] = c&this.DM;
   42042           0 :       c >>= this.DB;
   42043           0 :     }
   42044           0 :     if(a.t < this.t) {
   42045           0 :       c -= a.s;
   42046           0 :       while(i < this.t) {
   42047           0 :         c += this[i];
   42048           0 :         r[i++] = c&this.DM;
   42049           0 :         c >>= this.DB;
   42050           0 :       }
   42051           0 :       c += this.s;
   42052           0 :     }
   42053           0 :     else {
   42054           0 :       c += this.s;
   42055           0 :       while(i < a.t) {
   42056           0 :         c -= a[i];
   42057           0 :         r[i++] = c&this.DM;
   42058           0 :         c >>= this.DB;
   42059           0 :       }
   42060           0 :       c -= a.s;
   42061           0 :     }
   42062           0 :     r.s = (c<0)?-1:0;
   42063           0 :     if(c < -1) r[i++] = this.DV+c;
   42064           0 :     else if(c > 0) r[i++] = c;
   42065           0 :     r.t = i;
   42066           0 :     r.clamp();
   42067           1 :   }
   42068           1 : 
   42069           1 :   // (protected) r = this * a, r != this,a (HAC 14.12)
   42070           1 :   // "this" should be the larger one if appropriate.
   42071           1 :   function bnpMultiplyTo(a,r) {
   42072           0 :     var x = this.abs(), y = a.abs();
   42073           0 :     var i = x.t;
   42074           0 :     r.t = i+y.t;
   42075           0 :     while(--i >= 0) r[i] = 0;
   42076           0 :     for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
   42077           0 :     r.s = 0;
   42078           0 :     r.clamp();
   42079           0 :     if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
   42080           1 :   }
   42081           1 : 
   42082           1 :   // (protected) r = this^2, r != this (HAC 14.16)
   42083           1 :   function bnpSquareTo(r) {
   42084           0 :     var x = this.abs();
   42085           0 :     var i = r.t = 2*x.t;
   42086           0 :     while(--i >= 0) r[i] = 0;
   42087           0 :     for(i = 0; i < x.t-1; ++i) {
   42088           0 :       var c = x.am(i,x[i],r,2*i,0,1);
   42089           0 :       if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
   42090           0 :         r[i+x.t] -= x.DV;
   42091           0 :         r[i+x.t+1] = 1;
   42092           0 :       }
   42093           0 :     }
   42094           0 :     if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
   42095           0 :     r.s = 0;
   42096           0 :     r.clamp();
   42097           1 :   }
   42098           1 : 
   42099           1 :   // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
   42100           1 :   // r != q, this != m.  q or r may be null.
   42101           1 :   function bnpDivRemTo(m,q,r) {
   42102           0 :     var pm = m.abs();
   42103           0 :     if(pm.t <= 0) return;
   42104           0 :     var pt = this.abs();
   42105           0 :     if(pt.t < pm.t) {
   42106           0 :       if(q != null) q.fromInt(0);
   42107           0 :       if(r != null) this.copyTo(r);
   42108           0 :       return;
   42109           0 :     }
   42110           0 :     if(r == null) r = nbi();
   42111           0 :     var y = nbi(), ts = this.s, ms = m.s;
   42112           0 :     var nsh = this.DB-nbits(pm[pm.t-1]);  // normalize modulus
   42113           0 :     if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
   42114           0 :     else { pm.copyTo(y); pt.copyTo(r); }
   42115           0 :     var ys = y.t;
   42116           0 :     var y0 = y[ys-1];
   42117           0 :     if(y0 == 0) return;
   42118           0 :     var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
   42119           0 :     var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
   42120           0 :     var i = r.t, j = i-ys, t = (q==null)?nbi():q;
   42121           0 :     y.dlShiftTo(j,t);
   42122           0 :     if(r.compareTo(t) >= 0) {
   42123           0 :       r[r.t++] = 1;
   42124           0 :       r.subTo(t,r);
   42125           0 :     }
   42126           0 :     BigInteger.ONE.dlShiftTo(ys,t);
   42127           0 :     t.subTo(y,y);  // "negative" y so we can replace sub with am later
   42128           0 :     while(y.t < ys) y[y.t++] = 0;
   42129           0 :     while(--j >= 0) {
   42130           0 :       // Estimate quotient digit
   42131           0 :       var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
   42132           0 :       if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) {  // Try it out
   42133           0 :         y.dlShiftTo(j,t);
   42134           0 :         r.subTo(t,r);
   42135           0 :         while(r[i] < --qd) r.subTo(t,r);
   42136           0 :       }
   42137           0 :     }
   42138           0 :     if(q != null) {
   42139           0 :       r.drShiftTo(ys,q);
   42140           0 :       if(ts != ms) BigInteger.ZERO.subTo(q,q);
   42141           0 :     }
   42142           0 :     r.t = ys;
   42143           0 :     r.clamp();
   42144           0 :     if(nsh > 0) r.rShiftTo(nsh,r);  // Denormalize remainder
   42145           0 :     if(ts < 0) BigInteger.ZERO.subTo(r,r);
   42146           1 :   }
   42147           1 : 
   42148           1 :   // (public) this mod a
   42149           1 :   function bnMod(a) {
   42150           0 :     var r = nbi();
   42151           0 :     this.abs().divRemTo(a,null,r);
   42152           0 :     if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
   42153           0 :     return r;
   42154           1 :   }
   42155           1 : 
   42156           1 :   // Modular reduction using "classic" algorithm
   42157           1 :   function Classic(m) { this.m = m; }
   42158           1 :   function cConvert(x) {
   42159           0 :     if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
   42160           0 :     else return x;
   42161           1 :   }
   42162           1 :   function cRevert(x) { return x; }
   42163           1 :   function cReduce(x) { x.divRemTo(this.m,null,x); }
   42164           1 :   function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
   42165           1 :   function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
   42166           1 : 
   42167           1 :   Classic.prototype.convert = cConvert;
   42168           1 :   Classic.prototype.revert = cRevert;
   42169           1 :   Classic.prototype.reduce = cReduce;
   42170           1 :   Classic.prototype.mulTo = cMulTo;
   42171           1 :   Classic.prototype.sqrTo = cSqrTo;
   42172           1 : 
   42173           1 :   // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
   42174           1 :   // justification:
   42175           1 :   //         xy == 1 (mod m)
   42176           1 :   //         xy =  1+km
   42177           1 :   //   xy(2-xy) = (1+km)(1-km)
   42178           1 :   // x[y(2-xy)] = 1-k^2m^2
   42179           1 :   // x[y(2-xy)] == 1 (mod m^2)
   42180           1 :   // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
   42181           1 :   // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
   42182           1 :   // JS multiply "overflows" differently from C/C++, so care is needed here.
   42183           1 :   function bnpInvDigit() {
   42184           0 :     if(this.t < 1) return 0;
   42185           0 :     var x = this[0];
   42186           0 :     if((x&1) == 0) return 0;
   42187           0 :     var y = x&3;    // y == 1/x mod 2^2
   42188           0 :     y = (y*(2-(x&0xf)*y))&0xf;  // y == 1/x mod 2^4
   42189           0 :     y = (y*(2-(x&0xff)*y))&0xff;  // y == 1/x mod 2^8
   42190           0 :     y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;  // y == 1/x mod 2^16
   42191           0 :     // last step - calculate inverse mod DV directly;
   42192           0 :     // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
   42193           0 :     y = (y*(2-x*y%this.DV))%this.DV;    // y == 1/x mod 2^dbits
   42194           0 :     // we really want the negative inverse, and -DV < y < DV
   42195           0 :     return (y>0)?this.DV-y:-y;
   42196           1 :   }
   42197           1 : 
   42198           1 :   // Montgomery reduction
   42199           1 :   function Montgomery(m) {
   42200           0 :     this.m = m;
   42201           0 :     this.mp = m.invDigit();
   42202           0 :     this.mpl = this.mp&0x7fff;
   42203           0 :     this.mph = this.mp>>15;
   42204           0 :     this.um = (1<<(m.DB-15))-1;
   42205           0 :     this.mt2 = 2*m.t;
   42206           1 :   }
   42207           1 : 
   42208           1 :   // xR mod m
   42209           1 :   function montConvert(x) {
   42210           0 :     var r = nbi();
   42211           0 :     x.abs().dlShiftTo(this.m.t,r);
   42212           0 :     r.divRemTo(this.m,null,r);
   42213           0 :     if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
   42214           0 :     return r;
   42215           1 :   }
   42216           1 : 
   42217           1 :   // x/R mod m
   42218           1 :   function montRevert(x) {
   42219           0 :     var r = nbi();
   42220           0 :     x.copyTo(r);
   42221           0 :     this.reduce(r);
   42222           0 :     return r;
   42223           1 :   }
   42224           1 : 
   42225           1 :   // x = x/R mod m (HAC 14.32)
   42226           1 :   function montReduce(x) {
   42227           0 :     while(x.t <= this.mt2)  // pad x so am has enough room later
   42228           0 :       x[x.t++] = 0;
   42229           0 :     for(var i = 0; i < this.m.t; ++i) {
   42230           0 :       // faster way of calculating u0 = x[i]*mp mod DV
   42231           0 :       var j = x[i]&0x7fff;
   42232           0 :       var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
   42233           0 :       // use am to combine the multiply-shift-add into one call
   42234           0 :       j = i+this.m.t;
   42235           0 :       x[j] += this.m.am(0,u0,x,i,0,this.m.t);
   42236           0 :       // propagate carry
   42237           0 :       while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
   42238           0 :     }
   42239           0 :     x.clamp();
   42240           0 :     x.drShiftTo(this.m.t,x);
   42241           0 :     if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
   42242           1 :   }
   42243           1 : 
   42244           1 :   // r = "x^2/R mod m"; x != r
   42245           1 :   function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
   42246           1 : 
   42247           1 :   // r = "xy/R mod m"; x,y != r
   42248           1 :   function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
   42249           1 : 
   42250           1 :   Montgomery.prototype.convert = montConvert;
   42251           1 :   Montgomery.prototype.revert = montRevert;
   42252           1 :   Montgomery.prototype.reduce = montReduce;
   42253           1 :   Montgomery.prototype.mulTo = montMulTo;
   42254           1 :   Montgomery.prototype.sqrTo = montSqrTo;
   42255           1 : 
   42256           1 :   // (protected) true iff this is even
   42257           1 :   function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
   42258           1 : 
   42259           1 :   // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
   42260           1 :   function bnpExp(e,z) {
   42261           0 :     if(e > 0xffffffff || e < 1) return BigInteger.ONE;
   42262           0 :     var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
   42263           0 :     g.copyTo(r);
   42264           0 :     while(--i >= 0) {
   42265           0 :       z.sqrTo(r,r2);
   42266           0 :       if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
   42267           0 :       else { var t = r; r = r2; r2 = t; }
   42268           0 :     }
   42269           0 :     return z.revert(r);
   42270           1 :   }
   42271           1 : 
   42272           1 :   // (public) this^e % m, 0 <= e < 2^32
   42273           1 :   function bnModPowInt(e,m) {
   42274           0 :     var z;
   42275           0 :     if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
   42276           0 :     return this.exp(e,z);
   42277           1 :   }
   42278           1 : 
   42279           1 :   // protected
   42280           1 :   BigInteger.prototype.copyTo = bnpCopyTo;
   42281           1 :   BigInteger.prototype.fromInt = bnpFromInt;
   42282           1 :   BigInteger.prototype.fromString = bnpFromString;
   42283           1 :   BigInteger.prototype.clamp = bnpClamp;
   42284           1 :   BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
   42285           1 :   BigInteger.prototype.drShiftTo = bnpDRShiftTo;
   42286           1 :   BigInteger.prototype.lShiftTo = bnpLShiftTo;
   42287           1 :   BigInteger.prototype.rShiftTo = bnpRShiftTo;
   42288           1 :   BigInteger.prototype.subTo = bnpSubTo;
   42289           1 :   BigInteger.prototype.multiplyTo = bnpMultiplyTo;
   42290           1 :   BigInteger.prototype.squareTo = bnpSquareTo;
   42291           1 :   BigInteger.prototype.divRemTo = bnpDivRemTo;
   42292           1 :   BigInteger.prototype.invDigit = bnpInvDigit;
   42293           1 :   BigInteger.prototype.isEven = bnpIsEven;
   42294           1 :   BigInteger.prototype.exp = bnpExp;
   42295           1 : 
   42296           1 :   // public
   42297           1 :   BigInteger.prototype.toString = bnToString;
   42298           1 :   BigInteger.prototype.negate = bnNegate;
   42299           1 :   BigInteger.prototype.abs = bnAbs;
   42300           1 :   BigInteger.prototype.compareTo = bnCompareTo;
   42301           1 :   BigInteger.prototype.bitLength = bnBitLength;
   42302           1 :   BigInteger.prototype.mod = bnMod;
   42303           1 :   BigInteger.prototype.modPowInt = bnModPowInt;
   42304           1 : 
   42305           1 :   // "constants"
   42306           1 :   BigInteger.ZERO = nbv(0);
   42307           1 :   BigInteger.ONE = nbv(1);
   42308           1 : 
   42309           1 :   // jsbn2 stuff
   42310           1 : 
   42311           1 :   // (protected) convert from radix string
   42312           1 :   function bnpFromRadix(s,b) {
   42313           0 :     this.fromInt(0);
   42314           0 :     if(b == null) b = 10;
   42315           0 :     var cs = this.chunkSize(b);
   42316           0 :     var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
   42317           0 :     for(var i = 0; i < s.length; ++i) {
   42318           0 :       var x = intAt(s,i);
   42319           0 :       if(x < 0) {
   42320           0 :         if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
   42321           0 :         continue;
   42322           0 :       }
   42323           0 :       w = b*w+x;
   42324           0 :       if(++j >= cs) {
   42325           0 :         this.dMultiply(d);
   42326           0 :         this.dAddOffset(w,0);
   42327           0 :         j = 0;
   42328           0 :         w = 0;
   42329           0 :       }
   42330           0 :     }
   42331           0 :     if(j > 0) {
   42332           0 :       this.dMultiply(Math.pow(b,j));
   42333           0 :       this.dAddOffset(w,0);
   42334           0 :     }
   42335           0 :     if(mi) BigInteger.ZERO.subTo(this,this);
   42336           1 :   }
   42337           1 : 
   42338           1 :   // (protected) return x s.t. r^x < DV
   42339           1 :   function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }
   42340           1 : 
   42341           1 :   // (public) 0 if this == 0, 1 if this > 0
   42342           1 :   function bnSigNum() {
   42343           0 :     if(this.s < 0) return -1;
   42344           0 :     else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
   42345           0 :     else return 1;
   42346           1 :   }
   42347           1 : 
   42348           1 :   // (protected) this *= n, this >= 0, 1 < n < DV
   42349           1 :   function bnpDMultiply(n) {
   42350           0 :     this[this.t] = this.am(0,n-1,this,0,0,this.t);
   42351           0 :     ++this.t;
   42352           0 :     this.clamp();
   42353           1 :   }
   42354           1 : 
   42355           1 :   // (protected) this += n << w words, this >= 0
   42356           1 :   function bnpDAddOffset(n,w) {
   42357           0 :     if(n == 0) return;
   42358           0 :     while(this.t <= w) this[this.t++] = 0;
   42359           0 :     this[w] += n;
   42360           0 :     while(this[w] >= this.DV) {
   42361           0 :       this[w] -= this.DV;
   42362           0 :       if(++w >= this.t) this[this.t++] = 0;
   42363           0 :       ++this[w];
   42364           0 :     }
   42365           1 :   }
   42366           1 : 
   42367           1 :   // (protected) convert to radix string
   42368           1 :   function bnpToRadix(b) {
   42369           0 :     if(b == null) b = 10;
   42370           0 :     if(this.signum() == 0 || b < 2 || b > 36) return "0";
   42371           0 :     var cs = this.chunkSize(b);
   42372           0 :     var a = Math.pow(b,cs);
   42373           0 :     var d = nbv(a), y = nbi(), z = nbi(), r = "";
   42374           0 :     this.divRemTo(d,y,z);
   42375           0 :     while(y.signum() > 0) {
   42376           0 :       r = (a+z.intValue()).toString(b).substr(1) + r;
   42377           0 :       y.divRemTo(d,y,z);
   42378           0 :     }
   42379           0 :     return z.intValue().toString(b) + r;
   42380           1 :   }
   42381           1 : 
   42382           1 :   // (public) return value as integer
   42383           1 :   function bnIntValue() {
   42384           0 :     if(this.s < 0) {
   42385           0 :       if(this.t == 1) return this[0]-this.DV;
   42386           0 :       else if(this.t == 0) return -1;
   42387           0 :     }
   42388           0 :     else if(this.t == 1) return this[0];
   42389           0 :     else if(this.t == 0) return 0;
   42390           0 :     // assumes 16 < DB < 32
   42391           0 :     return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];
   42392           1 :   }
   42393           1 : 
   42394           1 :   // (protected) r = this + a
   42395           1 :   function bnpAddTo(a,r) {
   42396           0 :     var i = 0, c = 0, m = Math.min(a.t,this.t);
   42397           0 :     while(i < m) {
   42398           0 :       c += this[i]+a[i];
   42399           0 :       r[i++] = c&this.DM;
   42400           0 :       c >>= this.DB;
   42401           0 :     }
   42402           0 :     if(a.t < this.t) {
   42403           0 :       c += a.s;
   42404           0 :       while(i < this.t) {
   42405           0 :         c += this[i];
   42406           0 :         r[i++] = c&this.DM;
   42407           0 :         c >>= this.DB;
   42408           0 :       }
   42409           0 :       c += this.s;
   42410           0 :     }
   42411           0 :     else {
   42412           0 :       c += this.s;
   42413           0 :       while(i < a.t) {
   42414           0 :         c += a[i];
   42415           0 :         r[i++] = c&this.DM;
   42416           0 :         c >>= this.DB;
   42417           0 :       }
   42418           0 :       c += a.s;
   42419           0 :     }
   42420           0 :     r.s = (c<0)?-1:0;
   42421           0 :     if(c > 0) r[i++] = c;
   42422           0 :     else if(c < -1) r[i++] = this.DV+c;
   42423           0 :     r.t = i;
   42424           0 :     r.clamp();
   42425           1 :   }
   42426           1 : 
   42427           1 :   BigInteger.prototype.fromRadix = bnpFromRadix;
   42428           1 :   BigInteger.prototype.chunkSize = bnpChunkSize;
   42429           1 :   BigInteger.prototype.signum = bnSigNum;
   42430           1 :   BigInteger.prototype.dMultiply = bnpDMultiply;
   42431           1 :   BigInteger.prototype.dAddOffset = bnpDAddOffset;
   42432           1 :   BigInteger.prototype.toRadix = bnpToRadix;
   42433           1 :   BigInteger.prototype.intValue = bnIntValue;
   42434           1 :   BigInteger.prototype.addTo = bnpAddTo;
   42435           1 : 
   42436           1 :   //======= end jsbn =======
   42437           1 : 
   42438           1 :   // Emscripten wrapper
   42439           1 :   var Wrapper = {
   42440           1 :     abs: function(l, h) {
   42441           0 :       var x = new goog.math.Long(l, h);
   42442           0 :       var ret;
   42443           0 :       if (x.isNegative()) {
   42444           0 :         ret = x.negate();
   42445           0 :       } else {
   42446           0 :         ret = x;
   42447           0 :       }
   42448           0 :       HEAP32[tempDoublePtr>>2] = ret.low_;
   42449           0 :       HEAP32[tempDoublePtr+4>>2] = ret.high_;
   42450           1 :     },
   42451           1 :     ensureTemps: function() {
   42452           0 :       if (Wrapper.ensuredTemps) return;
   42453           0 :       Wrapper.ensuredTemps = true;
   42454           0 :       Wrapper.two32 = new BigInteger();
   42455           0 :       Wrapper.two32.fromString('4294967296', 10);
   42456           0 :       Wrapper.two64 = new BigInteger();
   42457           0 :       Wrapper.two64.fromString('18446744073709551616', 10);
   42458           0 :       Wrapper.temp1 = new BigInteger();
   42459           0 :       Wrapper.temp2 = new BigInteger();
   42460           1 :     },
   42461           1 :     lh2bignum: function(l, h) {
   42462           0 :       var a = new BigInteger();
   42463           0 :       a.fromString(h.toString(), 10);
   42464           0 :       var b = new BigInteger();
   42465           0 :       a.multiplyTo(Wrapper.two32, b);
   42466           0 :       var c = new BigInteger();
   42467           0 :       c.fromString(l.toString(), 10);
   42468           0 :       var d = new BigInteger();
   42469           0 :       c.addTo(b, d);
   42470           0 :       return d;
   42471           1 :     },
   42472           1 :     stringify: function(l, h, unsigned) {
   42473           0 :       var ret = new goog.math.Long(l, h).toString();
   42474           0 :       if (unsigned && ret[0] == '-') {
   42475           0 :         // unsign slowly using jsbn bignums
   42476           0 :         Wrapper.ensureTemps();
   42477           0 :         var bignum = new BigInteger();
   42478           0 :         bignum.fromString(ret, 10);
   42479           0 :         ret = new BigInteger();
   42480           0 :         Wrapper.two64.addTo(bignum, ret);
   42481           0 :         ret = ret.toString(10);
   42482           0 :       }
   42483           0 :       return ret;
   42484           1 :     },
   42485           1 :     fromString: function(str, base, min, max, unsigned) {
   42486           0 :       Wrapper.ensureTemps();
   42487           0 :       var bignum = new BigInteger();
   42488           0 :       bignum.fromString(str, base);
   42489           0 :       var bigmin = new BigInteger();
   42490           0 :       bigmin.fromString(min, 10);
   42491           0 :       var bigmax = new BigInteger();
   42492           0 :       bigmax.fromString(max, 10);
   42493           0 :       if (unsigned && bignum.compareTo(BigInteger.ZERO) < 0) {
   42494           0 :         var temp = new BigInteger();
   42495           0 :         bignum.addTo(Wrapper.two64, temp);
   42496           0 :         bignum = temp;
   42497           0 :       }
   42498           0 :       var error = false;
   42499           0 :       if (bignum.compareTo(bigmin) < 0) {
   42500           0 :         bignum = bigmin;
   42501           0 :         error = true;
   42502           0 :       } else if (bignum.compareTo(bigmax) > 0) {
   42503           0 :         bignum = bigmax;
   42504           0 :         error = true;
   42505           0 :       }
   42506           0 :       var ret = goog.math.Long.fromString(bignum.toString()); // min-max checks should have clamped this to a range goog.math.Long can handle well
   42507           0 :       HEAP32[tempDoublePtr>>2] = ret.low_;
   42508           0 :       HEAP32[tempDoublePtr+4>>2] = ret.high_;
   42509           0 :       if (error) throw 'range error';
   42510           1 :     }
   42511           1 :   };
   42512           1 :   return Wrapper;
   42513           1 : })();
   42514           1 : 
   42515           1 : //======= end closure i64 code =======
   42516           1 : 
   42517           1 : 
   42518           1 : 
   42519           1 : // === Auto-generated postamble setup entry stuff ===
   42520           1 : 
   42521           1 : if (memoryInitializer) {
   42522           1 :   if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
   42523           1 :     var data = Module['readBinary'](memoryInitializer);
   42524           1 :     HEAPU8.set(data, STATIC_BASE);
   42525           1 :   } else {
   42526           1 :     addRunDependency('memory initializer');
   42527           1 :     Browser.asyncLoad(memoryInitializer, function(data) {
   42528           0 :       HEAPU8.set(data, STATIC_BASE);
   42529           0 :       removeRunDependency('memory initializer');
   42530           1 :     }, function(data) {
   42531           0 :       throw 'could not load memory initializer ' + memoryInitializer;
   42532           1 :     });
   42533           1 :   }
   42534           1 : }
   42535           1 : 
   42536           1 : function ExitStatus(status) {
   42537           1 :   this.name = "ExitStatus";
   42538           1 :   this.message = "Program terminated with exit(" + status + ")";
   42539           1 :   this.status = status;
   42540           1 : };
   42541           1 : ExitStatus.prototype = new Error();
   42542           1 : ExitStatus.prototype.constructor = ExitStatus;
   42543           1 : 
   42544           1 : var initialStackTop;
   42545           1 : var preloadStartTime = null;
   42546           1 : var calledMain = false;
   42547           1 : 
   42548           1 : dependenciesFulfilled = function runCaller() {
   42549           0 :   // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
   42550           0 :   if (!Module['calledRun'] && shouldRunNow) run(['binarytrees.lua'].concat(Module["arguments"]));
   42551           0 :   if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
   42552           1 : }
   42553           1 : 
   42554           1 : Module['callMain'] = Module.callMain = function callMain(args) {
   42555           1 :   assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)');
   42556           1 :   assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called');
   42557           1 : 
   42558           1 :   args = args || [];
   42559           1 : 
   42560           1 :   ensureInitRuntime();
   42561           1 : 
   42562           1 :   var argc = args.length+1;
   42563           3 :   function pad() {
   42564           3 :     for (var i = 0; i < 4-1; i++) {
   42565           3 :       argv.push(0);
   42566           3 :     }
   42567           3 :   }
   42568           1 :   var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_NORMAL) ];
   42569           1 :   pad();
   42570           1 :   for (var i = 0; i < argc-1; i = i + 1) {
   42571           1 :     argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL));
   42572           1 :     pad();
   42573           1 :   }
   42574           1 :   argv.push(0);
   42575           1 :   argv = allocate(argv, 'i32', ALLOC_NORMAL);
   42576           1 : 
   42577           1 :   initialStackTop = STACKTOP;
   42578           1 : 
   42579           1 :   try {
   42580           1 : 
   42581           1 :     var ret = Module['_main'](argc, argv, 0);
   42582           1 : 
   42583           1 : 
   42584           1 :     // if we're not running an evented main loop, it's time to exit
   42585           1 :     if (!Module['noExitRuntime']) {
   42586           1 :       exit(ret);
   42587           1 :     }
   42588           1 :   }
   42589           1 :   catch(e) {
   42590           1 :     if (e instanceof ExitStatus) {
   42591           1 :       // exit() throws this once it's done to make sure execution
   42592           1 :       // has been stopped completely
   42593           1 :       return;
   42594           1 :     } else if (e == 'SimulateInfiniteLoop') {
   42595           1 :       // running an evented main loop, don't immediately exit
   42596           1 :       Module['noExitRuntime'] = true;
   42597           1 :       return;
   42598           1 :     } else {
   42599           1 :       if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]);
   42600           1 :       throw e;
   42601           1 :     }
   42602           1 :   } finally {
   42603           1 :     calledMain = true;
   42604           1 :   }
   42605           1 : }
   42606           1 : 
   42607           1 : 
   42608           1 : 
   42609           1 : 
   42610           1 : function run(args) {
   42611           1 :   args = args || Module['arguments'];
   42612           1 : 
   42613           1 :   if (preloadStartTime === null) preloadStartTime = Date.now();
   42614           1 : 
   42615           1 :   if (runDependencies > 0) {
   42616           1 :     Module.printErr('run() called, but dependencies remain, so not running');
   42617           1 :     return;
   42618           1 :   }
   42619           1 : 
   42620           1 :   preRun();
   42621           1 : 
   42622           1 :   if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
   42623           1 :   if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame
   42624           1 : 
   42625           1 :   function doRun() {
   42626           1 :     if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening
   42627           1 :     Module['calledRun'] = true;
   42628           1 : 
   42629           1 :     ensureInitRuntime();
   42630           1 : 
   42631           1 :     preMain();
   42632           1 : 
   42633           1 :     if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) {
   42634           1 :       Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms');
   42635           1 :     }
   42636           1 : 
   42637           1 :     if (Module['_main'] && shouldRunNow) {
   42638           1 :       Module['callMain'](args);
   42639           1 :     }
   42640           1 : 
   42641           1 :     postRun();
   42642           1 :   }
   42643           1 : 
   42644           1 :   if (Module['setStatus']) {
   42645           1 :     Module['setStatus']('Running...');
   42646           1 :     setTimeout(function() {
   42647           0 :       setTimeout(function() {
   42648           0 :         Module['setStatus']('');
   42649           0 :       }, 1);
   42650           0 :       if (!ABORT) doRun();
   42651           1 :     }, 1);
   42652           1 :   } else {
   42653           1 :     doRun();
   42654           1 :   }
   42655           1 : }
   42656           1 : Module['run'] = Module.run = run;
   42657           1 : 
   42658           1 : function exit(status) {
   42659           1 :   ABORT = true;
   42660           1 :   EXITSTATUS = status;
   42661           1 :   STACKTOP = initialStackTop;
   42662           1 : 
   42663           1 :   // exit the runtime
   42664           1 :   exitRuntime();
   42665           1 : 
   42666           1 :   // TODO We should handle this differently based on environment.
   42667           1 :   // In the browser, the best we can do is throw an exception
   42668           1 :   // to halt execution, but in node we could process.exit and
   42669           1 :   // I'd imagine SM shell would have something equivalent.
   42670           1 :   // This would let us set a proper exit status (which
   42671           1 :   // would be great for checking test exit statuses).
   42672           1 :   // https://github.com/kripken/emscripten/issues/1371
   42673           1 : 
   42674           1 :   // throw an exception to halt the current execution
   42675           1 :   throw new ExitStatus(status);
   42676           1 : }
   42677           1 : Module['exit'] = Module.exit = exit;
   42678           1 : 
   42679           1 : function abort(text) {
   42680           0 :   if (text) {
   42681           0 :     Module.print(text);
   42682           0 :     Module.printErr(text);
   42683           0 :   }
   42684           0 : 
   42685           0 :   ABORT = true;
   42686           0 :   EXITSTATUS = 1;
   42687           0 : 
   42688           0 :   var extra = '\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.';
   42689           0 : 
   42690           0 :   throw 'abort() at ' + stackTrace() + extra;
   42691           1 : }
   42692           1 : Module['abort'] = Module.abort = abort;
   42693           1 : 
   42694           1 : // {{PRE_RUN_ADDITIONS}}
   42695           1 : 
   42696           1 : if (Module['preInit']) {
   42697           1 :   if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
   42698           1 :   while (Module['preInit'].length > 0) {
   42699           1 :     Module['preInit'].pop()();
   42700           1 :   }
   42701           1 : }
   42702           1 : 
   42703           1 : // shouldRunNow refers to calling main(), not run().
   42704           1 : var shouldRunNow = true;
   42705           1 : if (Module['noInitialRun']) {
   42706           1 :   shouldRunNow = false;
   42707           1 : }
   42708           1 : 
   42709           1 : 
   42710           1 : run(['binarytrees.lua'].concat(Module["arguments"]));

Generated by: LCOV version 1.10